Unit testing 测试后端api端点是否考虑单元测试?

Unit testing 测试后端api端点是否考虑单元测试?,unit-testing,express,testing,tdd,bdd,Unit Testing,Express,Testing,Tdd,Bdd,例如,如果您有一个使用Express的节点服务器,并且您编写了一个Jasmine测试来确保POST/someroute为您提供了您期望的JSON,那么这仍然被认为是单元测试吗?我知道它似乎不符合应用程序最小可测试部分的严格定义。因此,如果没有,这种类型的路由测试是否有特定的术语?它被认为是服务器的单元测试 这将超出测试客户端的范围。因为服务器已经在测试它了。对于客户端/前端,您应该只测试您的应用程序在获得200、400、500等数据时是否能按预期工作。另请参见根据?当然可以: 在计算机编程中,单

例如,如果您有一个使用Express的节点服务器,并且您编写了一个Jasmine测试来确保POST/someroute为您提供了您期望的JSON,那么这仍然被认为是单元测试吗?我知道它似乎不符合应用程序最小可测试部分的严格定义。因此,如果没有,这种类型的路由测试是否有特定的术语?

它被认为是服务器的单元测试

这将超出测试客户端的范围。因为服务器已经在测试它了。对于客户端/前端,您应该只测试您的应用程序在获得200、400、500等数据时是否能按预期工作。另请参见根据?当然可以:

在计算机编程中,单元测试是一种软件测试方法,通过这种方法,对源代码的各个单元、一个或多个计算机程序模块的集合以及相关的控制数据、使用程序和操作程序进行测试,以确定它们是否适合使用

换句话说:你为了测试一个程序而做的任何事情都可以被认为是单元测试

但当然,您可能是在问更狭义的单元测试,例如。其中一个方面:

在内存中运行(例如,没有数据库或文件访问)

或者换句话说:真正的单元测试是在隔离中测试单个单元

从这里:我不认为所描述的方法是单元测试:

  • 您不是在测试单个单元,而是作为一个整体测试一个API端点—您练习API端点,并且您希望您的实现返回一个值,该值可以是许多内部步骤的结果
  • 由于您没有描述任何方法,所以您的单元似乎也没有与文件系统/数据库/隔离

从这个意义上说:我认为你所说的与其说是单元测试,不如说是功能/集成测试。

我不太相信维基百科的那篇文章。我更喜欢,他和Kent Beck(JUnit的创建者,TDD和XP的主要支持者)是IMO更可靠的信息来源。对于这些人来说,程序员编写的任何自动测试都是单元测试。事实上,对于什么是单元测试,什么不是单元测试,没有一个普遍的共识。就个人而言,我认为人们应该关注的重要区别是“好”与“坏”测试的区别。