假设您的网站需要调用Twitter API来执行某些任务,您有几种选择:
如果您的服务取决于外部API,哪一个是最好的方法?
答案 0 :(得分:2)
我会退后一步,问自己你要测试的是什么。
如果您试图单独测试其他代码,请使用模拟(毕竟这是模拟的目的)。
如果您尝试真正测试端到端,请使用生产API(如果有实用测试API,则使用它)。
所以我的答案非常接近你的第二选择,但需要注意的是你应该考虑是否需要从第三方测试API。有时这样做或者是必要的,有时它没有意义(它们被认为是可靠的,或者这样做非常不方便)。
答案 1 :(得分:0)
我认为第二个是最好的解决方案。我在功能测试中使用模拟单元测试和生产API。 我不希望单元测试使用远程api因为我希望它们快速运行而我不测试该api的结果(和连接),但我希望我的Jenkins失败,如果api已经改变或我有一个连接问题或其他什么
答案 2 :(得分:0)
使用Mock的一个优点是进行“负面测试”,例如:您的代码如何响应API返回的某些错误条件。使用Mock可以测试100%的可达到的'代码,而这将使用真实的API(特别是在您的组织外部提供的API)存在问题。