| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
11年前发布

Ruby单元测试mock库:FlexMock

FlexMock是一个比较流行的针对Rails单元测试的Mock工具。

编写测试的时候,可能需要和系统内的某个模块或系统外某个实体交互,例如数据库读写、邮件发送等。这时就需要使用 mock 技术来模拟。

简单的例子

我们有一个获取数据的类TemperatureSampler,从温度感应器中读取数据,并返回三次读取的平均值。当我们运行测试的时候,我们并没有真正的温度感性器,所以我们需要一个mock对象来响应read_temperature消息:

require 'test/unit'  require 'flexmock/test_unit'    class TemperatureSampler    def initialize(sensor)      @sensor = sensor    end      def average_temp      total = (0...3).collect {        @sensor.read_temperature      }.inject { |i, s| i + s }      total / 3.0    end  end    class TestTemperatureSampler < Test::Unit::TestCase    def test_sensor_can_average_three_temperature_readings      sensor = flexmock("temp")      sensor.should_receive(:read_temperature).times(3).        and_return(10, 12, 14)        sampler = TemperatureSampler.new(sensor)      assert_equal 12, sampler.average_temp    end  end


项目主页:http://www.open-open.com/lib/view/home/1394781925509

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1394781925509.html
FlexMock 单元测试