0

我怎么能在不使用任何 gem 的情况下模拟任何方法?

假设我可以访问一个复杂的对象,例如request

我怎么能做

request.location.country

返回一个模拟值。

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

4

2 回答 2

1

这就是我一直在做的事情

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

我正在使用 BingAPI,为了弄清楚我可以在foo.first对象上访问哪些选项,我查看了 Geocoder 文档:

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

于 2013-07-20T04:03:05.240 回答
0

就 Ruby 是一种鸭子类型的语言而言,确切的对象类型没有经过 AOT 验证,那么依赖注入就像编写一个具有与真实对象相同的方法/签名/返回类型的类一样简单。

为了进行适当的模拟,我过去使用Flexmock取得了一些成功,但 YMMV 取决于你在做什么。

于 2013-05-22T16:20:30.277 回答