Angular 中的单元、集成和端到端测试之间有什么区别?

Ale*_*liy 4 testing angular

  1. Angular 中的单元、集成和端到端测试有什么区别?
  2. 我应该知道哪些原则或范式来实施这些测试,它是如何工作的?

我发现单元测试是针对组件类的,集成测试是针对组件的类和模板一起进行的。

但是我没有发现端到端测试与这些测试有何不同,我如何在 Angular 中实现它们,这是这些类型测试的原则和范例。

Mar*_*und 5

这些类型的测试并不会因为您使用 Angular 而有所不同。无论您使用哪种框架,它们的用法都几乎相同。

我会尽力解释

单元

是当您只测试某个隔离的代码单元时

例子:

var sum = function(firstVal, secondVal){ 
    return firstVal + secondVal;
}
Run Code Online (Sandbox Code Playgroud)

在这里,我们可以使用单元测试来验证此代码实际上确实对 firstVal 和 secondVal 求和。

expect(sum(3,5)).toEqual(8);
Run Code Online (Sandbox Code Playgroud)

一体化

是当您测试集成时,您通常会与之交互但无法控制的某些代码

例子:

假设您在应用程序中使用第三方 api,它公开了一个 GET 方法,用于计算两个值的总和。在这里,我们可以使用集成测试来验证我们无法控制的外部 api 是否真的像它所说的那样工作。

request("http://someapi/sum?firstVal=3&secondVal=5", function(error, response){
  expect(response).toBe(8);
});
Run Code Online (Sandbox Code Playgroud)

端到端

是当您测试完整的应用程序时,从一端到另一端。

示例:首先成为用户并从 Web UI 使用应用程序。然后验证所有由 webUI 触发的操作都已正确执行。例如,如果您从 gui 创建订单,请验证订单是否已创建到数据库或第三方集成。