19

我使用这个 yeoman 生成器: https ://github.com/Swiip/generator-gulp-angular

它安装了三个测试应用程序:Jasmine、Karma、Protractor 根据这篇文章(我应该使用 Protractor 还是 Karma 进行端到端测试?),我应该使用:Karma 进行小型测试,例如单个控制器。Protactor 如果我想测试整个应用程序并模拟用户浏览我的应用程序。根据这个博客(http://andyshora.com/unit-testing-best-practices-angularjs.html),我会使用 Jasmine 进行单元测试,使用 Karma 进行端到端集成测试。

我猜 Jasmine 是编写测试的语言,其他两个执行代码,对吗?另外,如果我从来没有写过一个更重要的是先学习/关注的测试?

4

1 回答 1

46

Karma 是一个测试运行器,所以它运行你的测试。 Jasmine是让你编写测试的框架

在我看来,在 Angularjs 中你:

  • 必须对服务进行单元测试,因为您的业务代码就在那里。
  • 应该对控制器进行单元测试,因为用户操作在那里。
  • 可以对自定义指令进行单元测试(如果您打算与其他人共享该指令,这是必须的)

Protractor 用于 E2E 测试(像真实用户一样测试导航)。它将 WebDriverJS 与 Jasmine 相结合,并允许您使用 Jasmine 语法编写端到端测试(您模拟真实的浏览器并采取实际行动)。

这种测试在 Web 应用程序中也非常重要。

您不应该测试所有内容,尤其是在项目开始时,这些类型的测试通常伴随着高水平的维护(即,当您更改屏幕时,您可能必须更改测试)。

我所做的是测试关键路径和功能。我做了一个阅读应用程序,所以在我的例子中,它是登录、注册、付款、访问书和访问阅读器。

于 2015-01-30T10:51:29.953 回答