如何确定测试范围

How to determinate the scope of a test

我如何确定测试功能的最佳方式:

举例

我有一个电子邮件验证是由 returns 一个有错误的对象的函数进行的,我应该将其作为单元测试进行测试并测试该函数,或者应该创建一个 e2e 来测试 ui 显示正确的验证消息?

你可以两者都做。他们每个人都测试不同的东西。

在这种情况下,您应该从单元测试开始。

您想从测试中获得 (quick) 反馈,直接测试功能是您可以获得的最佳反馈。如果测试失败,您很确定它与被测功能有关。通过单元测试,您可以轻松测试函数的所有路径和错误条件。

e2e 测试检查所有层(最终调用您的函数)是否协同工作。如果失败,则任何(!)层都可能存在问题。找到问题的原因将是更多的工作。这就是为什么您不从 e2e 测试中测试功能的细节。如果可以直接检查功能,为什么要涉及所有层?

然后您使用对象的存根数据在 ui 端编写更多单元 (!) 测试。您不调用该函数。将存根数据传递给 ui 并检查它是否根据存根数据正确处理。例如,您可以测试成功案例而没有错误,而另一个案例有错误等等。

完成后您知道该函数有效并且 ui 处理函数的结果。

现在您可以编写端到端测试了。

e2e 测试是否有意义在很大程度上取决于您的上下文。根据我的经验,这是大量的工作,但 return 很少。这在您的上下文中可能有所不同。我担心你必须自己找出它是否有回报:-)