Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 地理编码器的人工模拟_Ruby On Rails_Ruby_Testing_Mocking_Rails Geocoder - Fatal编程技术网

Ruby on rails 地理编码器的人工模拟

Ruby on rails 地理编码器的人工模拟,ruby-on-rails,ruby,testing,mocking,rails-geocoder,Ruby On Rails,Ruby,Testing,Mocking,Rails Geocoder,如果不使用任何gem,我怎么能模仿任何方法呢 假设我可以访问一个复杂的对象,比如request 我该怎么做 request.location.country 返回模拟值 我读到我可以用gems模拟geocoder结果,但我想知道一种通用的方法。因为Ruby是一种duck类型的语言,确切的对象类型没有经过AOT验证,那么依赖注入就像编写一个与真实对象具有相同方法/签名/返回类型的类一样简单 为了进行适当的嘲弄,我在过去使用过一些成功的方法,但是YMMV取决于你在做什么。以下是我的做法 foo =

如果不使用任何gem,我怎么能模仿任何方法呢

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

我该怎么做

request.location.country
返回模拟值


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

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


为了进行适当的嘲弄,我在过去使用过一些成功的方法,但是YMMV取决于你在做什么。

以下是我的做法

foo = Geocoder.search('Paris, TX')
foo.first.county
我正在使用BingAPI,为了弄清楚我可以在
foo上访问哪些选项。首先,我看一下Geocoder文档: