API单元测试(测试端点与测试所有内容)

艾哈迈德·哈杰尔(Ahmad Hajjar)

我们正在使用Laravel构建API,并且面临一个基本问题:

我们是否应该测试所有内容(每个模型,控制器和任何其他类中的每个方法)?或仅测试API端点,因为测试端点意味着将测试所有其他内容,因为API端点正在使用Controller的方法,而又是使用Model的方法!

实际上,我倾向于测试端点的后一种将帮助您测试其他所有内容,但是我需要确保这是正确的做法。

编辑:

请考虑以下两点:

  • 测试端点意味着我必须发送一个HTTP请求并等待响应以查看它是否正是我所需要的,这对于此方法可能是非常不利的。
  • 测试所有内容意味着我必须找到某种方法来模拟laravel请求及其标头,这对于此方法可能是非常不利的。

任何提示或评论将不胜感激。

prgmtc

双方都有争论和支持者。我怀疑关于此主题的观点与开发人员进行任何形式的开发人员测试的方式一样多。

简而言之:

  • 单元测试给您的设计带来更大的压力。如果在单元级别进行测试,错误的代码会给您带来更大的伤害。
  • 单元测试使您可以更准确地查明问题,因为它们可以独立测试每个工作单元。如果单元测试失败,那么您知道在哪里寻找问题。如果集成测试失败,您就会知道出了点问题,但是通常必须开始调试才能发现实际问题。

我喜欢最近使用的Twitter用户@everzet短语

当它们变成绿色时,所有测试看起来都一样。当它们变成红色时,您会看到真正的区别。

另一方面,集成测试在重构时提供了更大的自由度。如果仅在API级别进行测试,则可以更改整个实现,而不会影响测试。如果您在单元级别进行测试,则重构可能意味着您必须更新/重写很多测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

api的单元测试

来自分类Dev

没有测试的单元测试

来自分类Dev

Rest API 的单元测试

来自分类Dev

单元测试 web api

来自分类Dev

在运行所有测试或执行特定测试后,C ++单元测试失败

来自分类Dev

对具有IRepository的所有IEntity进行单元测试

来自分类Dev

具有动态内容的bash单元测试

来自分类Dev

延迟XCTest中所有单元测试的执行

来自分类Dev

等到所有任务在单元测试中完成

来自分类Dev

使用所有参数类型的JS单元测试?

来自分类Dev

单元测试应该模拟所有外部服务吗?

来自分类Dev

所有单元测试都将Moq抛出BadImageFormatException吗?

来自分类Dev

在Dart中运行所有单元测试

来自分类Dev

从Visual Studio Code运行所有Flutter单元测试

来自分类Dev

JavaMail单元测试:要检查的内容

来自分类Dev

进行所有测试后,Python单元测试将运行功能

来自分类Dev

集成测试失败所有单元测试都成功,结论是什么?

来自分类Dev

从ios-sim启动单元测试不会执行所有测试

来自分类Dev

Angular2-运行所有单元测试会使个别通过的某些测试失败

来自分类Dev

从ios-sim启动单元测试不会执行所有测试

来自分类Dev

Xcode 单元测试 - 添加一个用于所有测试类的通用函数

来自分类Dev

当多个单元测试复制同一文件时,运行所有单元测试都会失败

来自分类Dev

当多个单元测试复制同一文件时,运行所有单元测试都会失败

来自分类Dev

在所有其他单元测试 (phpunit) 之前在 Laravel 中运行特定的单元测试

来自分类Dev

单元测试#ifdef

来自分类Dev

单元测试IoJS

来自分类Dev

单元测试WinForms

来自分类Dev

相关单元测试

来自分类Dev

单元测试概率

Related 相关文章

热门标签

归档