测试后端 api 端点是否被视为单元测试?
Is testing a backend api endpoint considered unit testing?
例如,如果您有一个使用 Express 的节点服务器,并且您编写了一个 Jasmine 测试以确保 POST /someroute 为您提供了您期望的 JSON,这仍然被视为单元测试吗?我知道它似乎不符合应用程序最小可测试部分的严格定义。那么,如果没有,是否有针对此类路由测试的特定术语?
它被认为是服务器的单元测试。
它将超出 客户端测试范围。因为服务器已经在测试它了。对于 client/front 端,您应该只测试您的应用程序在获得 200、400、500 等时是否按预期工作。另请参阅 here
根据wikipedia?当然:
In computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use.
换句话说:您以某种方式测试程序所做的任何事情都可以被视为单元测试。
但是,当然,您可能会在更狭义的意义上询问单元测试,例如 art-of-unit-testing 所定义的。一方面:
Runs in memory (no DB or File access, for example)
或者换句话说:真正的单元测试测试单个单元隔离。
来自那里:我不会将所描述的方法视为 单元测试:
- 您不是在测试单个单元,而是在测试一个 API 端点作为一个整体 - 您在测试 API 端点,并且您期望您的实现 return 一个可以是许多内部步骤的结果
- 因为你没有描述任何方法 - 看来你的单位也没有与文件隔离 system/database/...
从这个意义上说:我认为您所说的是 function/integration 测试,而不是 true 单元测试。
例如,如果您有一个使用 Express 的节点服务器,并且您编写了一个 Jasmine 测试以确保 POST /someroute 为您提供了您期望的 JSON,这仍然被视为单元测试吗?我知道它似乎不符合应用程序最小可测试部分的严格定义。那么,如果没有,是否有针对此类路由测试的特定术语?
它被认为是服务器的单元测试。
它将超出 客户端测试范围。因为服务器已经在测试它了。对于 client/front 端,您应该只测试您的应用程序在获得 200、400、500 等时是否按预期工作。另请参阅 here
根据wikipedia?当然:
In computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use.
换句话说:您以某种方式测试程序所做的任何事情都可以被视为单元测试。
但是,当然,您可能会在更狭义的意义上询问单元测试,例如 art-of-unit-testing 所定义的。一方面:
Runs in memory (no DB or File access, for example)
或者换句话说:真正的单元测试测试单个单元隔离。
来自那里:我不会将所描述的方法视为 单元测试:
- 您不是在测试单个单元,而是在测试一个 API 端点作为一个整体 - 您在测试 API 端点,并且您期望您的实现 return 一个可以是许多内部步骤的结果
- 因为你没有描述任何方法 - 看来你的单位也没有与文件隔离 system/database/...
从这个意义上说:我认为您所说的是 function/integration 测试,而不是 true 单元测试。