单元测试远程API?(在Symfony2捆绑包中)

单元测试远程API?(在Symfony2捆绑包中),symfony,phpunit,Symfony,Phpunit,我在这里创建了一个非常小的symfony2包: 只是一个调用远程url的简单服务 现在,单元测试方面,我应该测试这个吗?实际上,所有可能出现的问题都是远程主机不可用,但这不是我的代码的问题 如果这是您要维护的包,您有什么建议,我希望100%的代码覆盖率,但是50%的代码只是调用远程url 建议?我认为这个测试是不必要的。如果您尝试测试它,那么可以使用WebTestCase。捆绑包中的服务应接受用于客户端实现的Symfony\Component\BrowserKit\Client。您可以选择Gou

我在这里创建了一个非常小的symfony2包:

只是一个调用远程url的简单服务

现在,单元测试方面,我应该测试这个吗?实际上,所有可能出现的问题都是远程主机不可用,但这不是我的代码的问题

如果这是您要维护的包,您有什么建议,我希望100%的代码覆盖率,但是50%的代码只是调用远程url


建议?

我认为这个测试是不必要的。如果您尝试测试它,那么可以使用
WebTestCase
。捆绑包中的服务应接受用于客户端实现的
Symfony\Component\BrowserKit\Client
。您可以选择
Goutte\Client
使用cURL进行生产激发,或者选择
Symfony\Component\HttpKernel\Client
进行测试。然后,您必须动态添加路由或请求侦听器


不管怎么做,但是测试比实现更复杂,所以您如何确定您的测试是正常的?

我建议您使用
HTTP客户端
,而不是直接调用
文件\u get\u content
,这样您就可以通过容器注入它。在单元测试中,您可以注入http客户机的模拟值,该值可以定义所需的行为(如错误响应或500等)。希望这有帮助。如果您需要一些示例,请告诉我。唯一有意义的是向您的服务传递一个模拟,并检查对您的服务的调用是否以正确的方式调用了
Symfony\Component\BrowserKit\Client
。那么您应该获得更好的代码覆盖率。