Karma 与 Protractor、单元测试与 e2e 测试

DDa*_*Dan 6 javascript unit-testing angularjs protractor karma-jasmine

有人可以向我解释为什么我需要量角器和业力。乍一看,我觉得他们在做同样的事情。我知道 Karma 用于单元测试,Protractor 用于 e2e 测试。

  • 两种类型的测试之间的主要区别是什么?
  • 为什么我们不使用相同的运行器/框架来实现这两个目的?
  • 使用这两个框架有什么具体原因吗?

我知道两者都可以使用(并且在大多数示例中使用)Jasmine 框架来描述测试。

JB *_*zet 6

根据定义,单元测试是单独测试单个代码单元。测试一个控制器,隔离它使用的服务,或者测试一个服务,隔离它向其发送请求的后端 REST 服务器,是一个好主意,并且可以使测试非常快,但是进行所有这些测试并不能保证,当所有内容组装在一起并真正与后端对话时,应用程序将按预期运行。

E2e 测试对整个应用程序进行测试。他们相当于坐在浏览器前并使用应用程序来查看它是否按预期工作的人类测试人员。Protractor 是 Selenium 之上的一层,它允许以编程方式使用浏览器,即编写指令来单击链接、填写表单、提交,就像人类所做的那样。

  • 这基本上是测试加油泵或断路器工作(单元测试)和测试汽车(包含加油泵、多个断路器和许多其他东西)工作(e2e 测试)之间的区别。 (2认同)