我正在使用默认的Rails测试。
在一次测试中,我正在重载Date.today方法:
class Date
def self.today
Date.new(2011,7,19)
end
end
这适用于此文件中的测试,但会延续到其他测试并导致它们失败。如何将此代码的效果限制在单个文件中?
我认为这可能不是进行测试的最佳方式。是否有您推荐的分步教程?
感谢。
Rails 3.07
答案 0 :(得分:5)
感谢上面代码的d11wtq。
我是这样做的:
gem install 'mocha'
gem 'mocha'
添加到组:在Gemfile中测试(见下文)bundle install
require 'mocha'
之后添加了require 'test_helper'
setup do Date.stubs(:today).returns(Date.new(2011, 7, 19)) end
我发现这篇文章对Mocha有用的介绍:http://yarorb.wordpress.com/2007/11/26/mocks-and-stubs-in-ruby-on-rails-the-mocha-solution/
编辑:更多信息:
我发现您需要添加以下内容以在每次测试后删除存根。我把它放在设置方法之后:
teardown do Date.unstub(:today) end
而且,我认为你需要以下gem:Gemfile中的test组:
gem 'test-unit', '1.2.3'