我正在测试一些可以访问Google Maps API的代码,当然,我实际上并不想访问他们的API。基本上我要测试两件事......
lat
和lng
属性。 error
属性的响应对象。现在,当我点击他们的API时,测试工作正常,但正如我所说,我想基本上打一个假的API,所以我的测试不依赖于谷歌的API。
实际测试我的代码的好方法是什么?我不想仅仅为了通过测试而做某事。相反,我希望它是一个真正的测试。
以下是我的一个测试用例,它在响应中查找错误:
/** @test */
function an_error_attribute_is_returned_when_there_are_no_results()
{
$origin = '';
$destination = '';
$request = new GetDistanceRequest($origin, $destination);
$this->assertObjectHasAttribute('error', $request->receive());
}
答案 0 :(得分:1)
您的应用程序和Google地图之间的集成测试确实没有替代品。
您可以轻松地对您的应用程序处理成功请求中谷歌地图返回的数据对象进行单元测试,并且您的代码可以处理谷歌地图的错误响应。您可以复制从每个请求返回的响应,将其另存为文件,并将其作为夹具提供给您的代码。这个问题是google api可能与您的测试数据不同步。您的测试可能正在通过,然后当您推送应用程序时,他们可能会更改其API,并且您的应用程序将开始出错。
我可能会考虑的几件事情是:
如果可行的话,没有什么比经常服务更好的了。