我尝试使用FakeWeb (在cucumber/rails中)模拟地理编码请求。当我阻止所有http请求时,我收到以下消息:
Real HTTP connections are disabled. Unregistered request: GET
http://maps.google.com/maps/api/geocode/json?..... (FakeWeb::NetConnectNotAllowedError)因此,我尝试通过以下方式注册url:
FakeWeb.register_uri(:any, %r|http://maps\.google\.com/maps/|, :json
=> {
"status": "OK",
....} 我得到的错误是“JSON文本必须至少包含两个八位字节!”(MultiJson::DecodeError)我不确定返回什么信息。以及FakeWeb如何返回json数据。是否有人有一种解决方案,可以将服务器请求存根到google地图api?
发布于 2011-11-07 07:39:59
"A JSON text must at least contain two octets!"错误表明您用来存根响应的JSON字符串无效。在使用json字符串进行存根之前,尝试使用它运行MultiJson.decode(json_string);这将帮助您准确定位错误。
如果您不想处理清除google maps的细节,则可以考虑使用VCR;它将为您记录一个真实的响应,并在后续的测试运行中使用该响应来清除请求。这是在您的测试中获得真实的存根响应的一种更简单的方法。
https://stackoverflow.com/questions/8027406
复制相似问题