作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
假设我在 Store 的模型中有这个非常简单的方法:
def geocode_address
loc = Store.geocode(address)
self.lat = loc.lat
self.lng = loc.lng
end
如果我想编写一些不受地理编码服务影响的测试脚本,这些脚本可能已关闭、有限制或取决于我的互联网连接,我该如何模拟地理编码服务?如果我可以将地理编码对象传递到该方法中,那将很容易,但我不知道在这种情况下该怎么做。
谢谢!
特里斯坦
最佳答案
使用内置模拟和 stub 的 rspecs,你可以做这样的事情:
setup do
@subject = MyClass.new
end
it 'handles geocoder success' do
mock_geo = mock('result', :lat => 1, :lng => 1)
Store.stub!(:geocode).and_return mock_geo
@subject.geocode_address
@subject.lat.should == mock_geo.lat
@subject.lng.should == mock_geo.lng
end
it 'handles geocoder errors' do
Store.stub!(:geocode).and_raise Exception
@subject.geocode_address
@subject.lat.should == _something_reasonable_
@subject.lng.should == _something_reasonable_
end
关于ruby-on-rails - 在这种情况下我如何模拟一个对象?没有明显的方法可以用模拟替换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869078/
通常当我请求线程转储时,系统性能不佳的症状很容易解释;也就是说,通常我会看到许多线程显然正在等待一个已被获取但未被另一个释放的监视器。 在这种情况下,我有很多线程在等待监视器 (0x965ad100)
C:\Users\shagy\Desktop\3RD YEAR 2ND SEMESTER\SPM\Newfolder\SPM-SMS>npm start npm ERR! path C:\Users\
我是一名优秀的程序员,十分优秀!