Geocoder的手动模拟

时间:2013-05-22 16:16:23

标签: ruby-on-rails ruby testing mocking rails-geocoder

如何在不使用任何宝石的情况下模拟任何方法?

假设我可以访问像request

这样的复杂对象

我怎么做

request.location.country

返回模拟值。

我读过我可以用宝石模拟geocoder结果,但我想知道一种通用方法。

2 个答案:

答案 0 :(得分:1)

以下是我一直在做的事情

foo = Geocoder.search('Paris, TX')
foo.first.county

我正在使用BingAPI,并想出我可以在foo.first对象上访问哪些选项,我看一下Geocoder文档:

http://rdoc.info/github/alexreisner/geocoder/master/Geocoder/Result/Bing

答案 1 :(得分:0)

至于Ruby是一种鸭子类型的语言,其中确切的对象类型未经过AOT验证,那么依赖注入就像编写一个具有相同方法/签名/返回类型的类一样简单。< / p>

为了做适当的嘲弄,我过去曾使用Flexmock取得了一些成功,但YMMV取决于你正在做什么。