B S*_*ven 2 tdd unit-testing overloading ruby-on-rails ruby-on-rails-3
我正在使用默认的Rails测试.
在一个测试中,我正在重载Date.today方法:
class Date
def self.today
Date.new(2011,7,19)
end
end
Run Code Online (Sandbox Code Playgroud)
这适用于此文件中的测试,但会延续到其他测试并导致它们失败.如何将此代码的效果限制在单个文件中?
我认为这可能不是进行测试的最佳方式.您推荐的是否有任何分步教程?
谢谢.
Rails 3.07
感谢上面代码的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'
归档时间: |
|
查看次数: |
511 次 |
最近记录: |