混合应用程序的Karma测试中的“参考错误:未定义角度”

时间:2019-09-16 15:31:40

标签: angular unit-testing karma-jasmine angular-hybrid

我正在尝试为混合应用程序编写角度组件的单元测试。有问题的组件在其方法之一中使用“ let var = angular.element(.....)”,这是导致错误的代码。

项目运行良好,一切正常。

但是在spec.ts文件中,默认测试

it('should create', () => {
    expect(component).toBeTruthy();
  });

因果报应导致错误“参考错误:未定义角度”。

我试图寻找一种解决方案,但找不到与此相关的任何内容(存在一个错误相同的问题,但那些项目使用了AngularJS和已弃用的bower软件包)。我还尝试在Angular.json文件的test =>脚本中声明角度节点模块的路径,但这导致另一个因果报应超时的错误。我想知道此问题是否特定于混合应用程序?

2 个答案:

答案 0 :(得分:0)

在看不到更多设置的情况下很难说出问题出在哪里,但是这是我在混合应用程序中设置angularJS测试所做的一些事情。

  • npm install angular-mocks -s
  • tsconfig.spec.json中,将angular添加到“类型”,如下所示
"compilerOptions": {
        "outDir": "../out-tsc/spec",
        "types": [
            "jasmine",
            "angular",
            "node"
        ]
  • test.ts中:import "angular-mocks";
  • 在angularJS测试中:beforeEach(angular.mock.module('your-module'));

希望这至少对您有所帮助。

答案 1 :(得分:0)

您可以在Karma配置中添加AngularJs lib文件。 karma.conf.js具有文件选项,您可以在其中提供AngularJs lib文件夹的路径:

文件:[{pattern:'PATH_TO_ANGULARJS_LIB_FOLDER / angular / *。js',观看次数:错误}]