AngularJS测试:量角器、因果报应、Jasmine在Yeoman应用程序中

AngularJS测试:量角器、因果报应、Jasmine在Yeoman应用程序中,jasmine,protractor,karma-runner,e2e-testing,Jasmine,Protractor,Karma Runner,E2e Testing,我使用这个约曼发电机: 它安装了三个测试应用程序:Jasmine、Karma、Digrator 根据本文(),我应该使用:Karma进行小型测试,例如单个控制器。如果我想测试整个应用程序并模拟一个用户浏览我的应用程序,那么就使用Proactor。根据这个博客()的说法,我将使用Jasmine进行单元测试,使用Karma进行端到端集成测试 我猜Jasmine是编写测试的语言,另外两个执行代码,对吗?另外,如果我从来没有写过一个更重要的测试,那就是首先学习/关注哪个测试?Karma是一个测试运行者

我使用这个约曼发电机:

它安装了三个测试应用程序:Jasmine、Karma、Digrator 根据本文(),我应该使用:Karma进行小型测试,例如单个控制器。如果我想测试整个应用程序并模拟一个用户浏览我的应用程序,那么就使用Proactor。根据这个博客()的说法,我将使用Jasmine进行单元测试,使用Karma进行端到端集成测试


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

Karma是一个测试运行者,所以它会运行您的测试。 是让您编写测试的框架

在我看来,Angularjs你:

  • 必须单元测试服务,因为您的业务代码就在那里
  • 应该单元测试控制器,因为用户操作在那里
  • 可以单元测试自定义指令(如果您计划与其他人共享该指令,则必须)
量角器用于E2E测试(像真实用户一样测试导航)。 它将WebDriverJS与Jasmine结合起来,并允许您使用Jasmine语法编写端到端测试(您模拟真实的浏览器并执行真实的操作)

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

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

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

好的,但我能用量角器做什么呢?它也是一个测试运行者吗?我在那里写的也是jasmine吗?啊,好吧,酷,测试支付是怎么做的,因为提供商有交易费。是否有便宜的隐藏产品以节省费用等。?所以我想我从学习Jasmine开始(就像我在博客上发表的文章一样),测试服可能是由gulp控制的。你有一个很好的资源来学习茉莉花,否则我只是谷歌为它?付款我只检查访问屏幕和重定向,而不是actuel付款。茉莉花有一些医生,但当你需要的时候,它更适合去挑选你需要的东西。我最常用的是spyOn、expect、toBe、toEqual、toHaveBeenCall,并且特定于网络调用存根的angularjs$httpBackend;对于网络调用,$httpBackend.flush(),其原理是angular团队不喜欢异步测试,因此测试中的行为导致同步。我认为这很好:)请看我在这里的答案,了解更多关于使用案例、业力和量角器的优点和局限性的详细讨论: