【问题标题】:Is testing a backend api endpoint considered unit testing?测试后端 api 端点是否被视为单元测试?
【发布时间】:2018-01-13 22:46:56
【问题描述】:

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

【问题讨论】:

    标签: unit-testing express testing tdd bdd


    【解决方案1】:

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

    这将是超出测试您的客户端的范围。因为服务器已经在测试了。对于客户端/前端,您应该只测试您的应用程序在获得 200、400、500 等时是否按预期工作。另请参阅here

    【讨论】:

      【解决方案2】:

      根据wikipedia?当然:

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

      换句话说:你为测试程序所做的任何事情都可以被视为单元测试。

      但是,当然,您可能问的是更狭义的单元测试,例如 art-of-unit-testing 所定义的。一方面:

      在内存中运行(例如,无 DB 或文件访问)

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

      来自那里:我不会将所描述的方法视为单元测试

      • 您测试的不是单个单元,而是整个 API 端点 - 您使用 API 端点,并希望您的实现返回一个值,该值可能是许多内部步骤的结果
      • 因为您没有描述任何方法 - 看来您的单元也没有与文件系统/数据库/...

      从这个意义上说:我认为您所说的更多的是功能/集成测试,而不是真正的单元测试。

      【讨论】:

      • 我不太相信维基百科的那篇文章。我更喜欢Fowler's article,他和 Kent Beck(JUnit 的创建者,TDD 和 XP 的主要支持者)一起是 IMO 更可靠的来源。对于这些人来说,程序员编写的几乎所有自动化测试都是单元测试。事情的真相是,对于究竟什么是或不是单元测试没有普遍的共识。就我个人而言,我认为人们应该关心的重要区别是“好”与“坏”测试的区别。
      猜你喜欢
      • 2014-03-20
      • 2022-07-26
      • 2016-06-07
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多