FlexMock - Rails模拟测试工具


MIT
跨平台
Ruby

软件简介

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

安装方法:$ gem install flexmock

代码示例:

  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