在Web应用程序中,有REST端点,每个端点在内部调用各种函数。
可以编写一个简单的API请求和响应测试用例来测试该API的功能。
考虑到场景,开发人员在所需的功能上进行了一些更改,API测试将失败,并且开发人员将注意到是由他的更改导致测试用例失败的。 同样在单元测试的情况下,相应的功能测试用例也会失败
因此,当一个API测试用例足够时,为每个函数编写测试用例是必要的。 请帮助我理解。谢谢您的时间
答案 0 :(得分:3)
原因不只一个,所以这是我能想到的原因:
在编写软件时,您总是尝试使代码模块化和可重用。
一般而言,编写功能已经遵循了这一理念: 您可以在整个代码中的许多地方重复使用该功能,而无需编写重复的代码。
使用单元测试功能,无论在何处使用它,都可以测试单个功能是否满足您期望的合同。
这样,当您需要在以后的某个时间再次使用该函数时,您可以信任该函数,也许使用一组新的参数,这些参数可能会使该函数的行为有所不同。您可以分别有效地测试该函数中所有可能的逻辑分支,即使您可能尚未使用 。 (谢谢@JBNizet)
一旦您需要重构代码,这一点就变得更加明显。
当API测试失败时,您可能不知道可能是复杂的应用程序中的哪一部分代码会引起问题。
但是,当一个功能的单元测试失败(这也可能导致API测试失败)时,您知道该功能中的代码是错误的。它为您节省了很多时间。
API测试难以编写,尤其是在需要涵盖API调用的所有功能的所有可能的情况下。
这也使它们变慢了很多。
(再次感谢@JBNizet)
总的来说,所有这些都归结为编程范式“分而治之”:将手头的任何问题分解为可能的最小子问题,直到仅剩下一些琐碎的问题(在本例中为单元测试)。