AngularJS 1.7模块注入测试错误

时间:2019-01-19 04:51:36

标签: javascript angularjs unit-testing jestjs

我的AngularJS(1.7.x)应用程序有一个自定义过滤器,我想围绕它编写测试,因此我决定使用Jest执行此任务。

我的主要问题是,随着我遵循this tutorial by Curt,我正在努力正确地获取要在测试中加载的过滤器(该过滤器没有外部依赖性,因此我认为这是引入单元测试的主要目标)安全带。

对于初学者来说,以下是针对此问题的过滤器的简化版本:

angular.module('app.module').filter('takeTheThing', () =>
  function (parameter1) {
    return `${parameter1} thing!`;
  }
);

而且,在按照上述教程操作并阅读了another SO question specific to testing AngularJS filters之后,我尝试了以下but receive a cryptic error message from Angular about it的所有可能的简单测试文件版本:

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

//Commenting or un-commenting this, results in module-related injector errors:
//require('./takeTheThing.filter.js');

describe('The thingerizer', () => {
  let $filter;
  beforeEach(angular.mock.module('app.module'));

  //Injecting this specifically, or _$filter_ still errors:
  beforeEach(inject(takeTheThingFilter => {
    $filter = takeTheThingFilter;
  }));

  //Injecting here instead of in the beforeEach, same issue
  it('should give me something', () => {
    //Calling the specific filter or thru the Angular $filter... Same
    const actual = $filter(1);

    expect(actual).toEqual('1 thing!');
  });
});

我要拔头发了,但是关于测试设置(特别是如何“正确”加载应用程序而不用全猪加载整个应用程序),我缺少一些基本知识。有什么作用?

AngularJS:1.7.5

角Mo:1.7.6

笑话:23.6.0(我正在使用gulp-jest,但是即使我直接从jest文件夹中调用bin,我也会得到完全相同的错误,因此我省略了大部分这些详细信息在这里

0 个答案:

没有答案