首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试处于beta状态的外部API

测试处于beta状态的外部API
EN

Software Engineering用户
提问于 2016-09-21 11:26:04
回答 2查看 133关注 0票数 2

我们公司正在使用一个实际上处于beta状态的外部API。这意味着它还不稳定,它每周左右都会更改请求/响应。

我想编写测试以确保我的代码正常工作。单元测试已经为我自己的代码完成了。但是API本身没有经过测试,因为它违反了第一条规则(快速测试)。如果我测试API请求/响应'live‘(它们有一个API的沙箱版本),测试本身大约需要7秒。那是很长的一段时间。

在这种情况下,我如何确定API对请求和响应仍然使用相同的结构,这是慢速测试正常的特例吗?显然,我的层次结构希望尽快使用这个API,而且我不想要任何bug。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2016-09-22 21:01:33

我想编写测试以确保我的代码正常工作。单元测试已经为我自己的代码完成了。但是API本身没有经过测试,因为它违反了第一条规则(快速测试)。如果我测试API请求/响应'live‘(它们有一个API的沙箱版本),测试本身大约需要7秒。那是很长的一段时间。

我完全同意将7秒添加到单元测试并不理想,但即使是7微秒,您也不应该在代码中使用单元测试来测试API。您不需要每次对代码进行更改时都测试API --即使您在一个月内不对代码进行更改,也需要测试它:每次更改代码时都需要测试它。

当然,您不知道他们多久这样做一次,所以我建议每小时/天/周自动运行一次测试,这取决于您期望更改的频率。

当然,真正进行这些测试是否是个好主意还有待商榷。就我个人而言,我认为进行一些明智的检查是有意义的,尤其是对于不稳定的服务,在这种服务中,有人可能会在不更改补丁版本的情况下进行更改,然后您必须进行数小时的调查,直到您意识到这一点--但我回避了:即使假设了最佳实践,您也可能误解了API,而如果更改不会影响到它的正常使用,就会破坏您的代码。

票数 1
EN

Software Engineering用户

发布于 2016-09-21 13:13:30

老实说,您正在调用的API应该有一个版本控制方案。IE,我在过去使用过的一个API是格式化的http://clientaddress.com/v1/endpoints,但是他们正在用一个住在http://clientaddress.com/v2/endpoints上的v2进行测试。虽然我们希望尽快使用新的API,但我们只能在v1 (稳定版本)上进行测试,以确保一切正常运行。也就是说,我们经历了重载方法/调用/任何东西来接受来自v2 api的新对象的麻烦,然后使用这些对象调用v1格式的方法。通过这种方式,我们能够测试一个“不完整”的产品,确保我们的逻辑是正确的。

另一种选择,尽管有点“作弊”,因为(我认为?)您永远不希望使用called进行测试,而是在本地创建一个虚拟API,该API返回一个或多个预先设置的对象,其格式是您希望从客户端API中获得的格式,并且当您想要与客户端API对话时,这个方法将被调用。这样,您就可以证明您的代码适用于假对象,并且当您准备好使用最终形式的客户端api进行测试时,您可以修改这一方法,使其以最小的工作量进入真实的对象。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/331600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档