如何使用Jest测试AngularJS 1.x应用程序?

Pha*_*tek 6 angularjs jestjs

有人可以提供一个使用Jest测试AngularJS 1.x应用程序(工厂,控制器)的通用示例吗?该示例应使用普通ES5(无ES6 import语法)编写。

Cur*_*urt 5

高水平:

  • 安装 Angular-Mocks 和 Jest-CLI
  • 创建测试文件
  • 模拟 Angular 并注入服务/工厂

require('../node_modules/angular/angular.min.js');
require('../node_modules/angular-mocks/angular-mocks.js');
require('./mathservice.js');

describe('Math service - addTwoNumbers', function(){

  beforeEach(
    angular.mock.module('mathmodule')
  );

  var _mathservice;

  beforeEach(inject((mathservice) => {
    _mathservice = mathservice;
  }));

  it('1 + 1 should equal 2', function(){
    var actual = _mathservice.addTwoNumbers(1,1);
    expect(actual).toEqual(2);
  });

});
Run Code Online (Sandbox Code Playgroud)

我已经整理了一篇文章,逐步展示了如何进行设置以获取更多详细信息:

https://curtistimson.co.uk/post/angularjs/angularjs-jest-unit-testing/


Ran*_*iev 1

将其添加到您的 package.json 中:

  "scripts": {
    "test": "jest",
    "test:watch": "jest --watch",
    "test:ci": "jest --runInBand"
  },
  "jest": {
    "verbose": true,
    "moduleDirectories": ["node_modules", "app"]
  }
Run Code Online (Sandbox Code Playgroud)

使用 npm 安装 Angular、Angular-Mocks 和 Jest。

编写测试并使用npm test命令运行它。

请参阅此处的示例https://github.com/rantiev/template-jest-with-angular