AngularJS 测试:Yeoman 应用程序中的 Protractor、Karma、Jasmine

AngularJS Testing: Protractor, Karma, Jasmine in a Yeoman App

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

它安装了三个测试应用程序:Jasmine、Karma、Protractor 根据这篇文章 (Should I be using Protractor or Karma for my end-to-end testing?), I should use: Karma for small tests of e.g. a single controller. Protactor if I want to test the whole app and simulate an user browsing through my app. According to this blog (http://andyshora.com/unit-testing-best-practices-angularjs.html),我会使用 Jasmine 进行单元测试,使用 Karma 进行端到端集成测试。

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

Karma 是一个测试运行器,因此它运行您的测试。 Jasmine 是让你写测试的框架

我认为 Angularjs 你:

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

量角器专为端到端测试而设计(像真实用户一样测试导航)。 它将 WebDriverJS 与 Jasmine 相结合,让您可以使用 Jasmine 语法编写端到端测试(您模拟真实的浏览器并采取真实的操作)。

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

你不应该测试所有的东西,尤其是在项目开始时,这些测试通常伴随着高水平的维护(即,当你改变一个屏幕时,你可能必须改变测试)。

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