加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 编写单元测试REST REST API

发布时间:2020-12-13 14:08:17 所属栏目:PHP教程 来源:网络整理
导读:我正在计划对REST API进行单元测试,我想知道我应该采取的方法. 最关心我的方面与数据库状态有关.我的理解是,测试目标的环境或初始状态对于每个测试应该是相同的,这意味着每个测试的数据库也应该相同.当我有一个沉重的数据库时,该如何实现?另外,如何处理数据
我正在计划对REST API进行单元测试,我想知道我应该采取的方法.

最关心我的方面与数据库状态有关.我的理解是,测试目标的环境或初始状态对于每个测试应该是相同的,这意味着每个测试的数据库也应该相同.当我有一个沉重的数据库时,该如何实现?另外,如何处理数据库模式中的最终更改?

问题是你想测试什么你认为最顶层的api层(即正在接收HTTP请求的层)会破坏什么?

通常写单元测试restive-api听起来有点像矛盾;)通过定义单元测试比使用入门点HTTP到数据库要小得多.更重要的是,您的问题是基于如何编写大型测试(或验收,端到端测试).

小心实施这样的大型测试(端到端测试)需要付出很多努力:

>测试往往慢得多
>测试的维护成本,因为测试更难以理解(因为所有这些依赖测试数据设置)
>他们更倾向于引起假阳性测试(测试显示“红色”,尽管它应该是“绿色”).再次的原因是您的测试涉及更多的依赖关系,脆弱性更大.

在我的经验中,测试粒度的多样性是国王,因此我混合/组合的方法:

>对于api内部的单元测试(例如几个更复杂的映射要求,认证,棘手的验证规则,复杂的if / else逻辑,…)
>在更粗糙的级别上执行smoke-tests,HTTP客户端正在与api通话,即测试集成.这些测试会告诉我:服务器可以启动,主api用例工作.作为工具我推荐soap-ui.
>关于数据库状态:我经常从大多数基本数据开始(例如现有的api用户或预定义的不可变测试数据).每个测试的测试数据应该被隔离.如果我的测试包括更复杂的流程(例如整个用例分布在多个HTTP调用中),则允许测试数据依赖于测试步骤(即,call-2可能取决于通过call- 1)

也许你可以给你想要测试的具体用例更多的输入,所以可以提供更多的帮助?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读