0

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

该项目构建良好,一切都按预期工作。

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

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

导致 Karma 抛出“参考错误:未定义角度”的错误。

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

4

2 回答 2

0

如果不查看更多设置,很难说出问题所在,但这里有一些我在混合应用程序中设置 angularJS 测试的事情。

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

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

于 2019-09-30T08:31:34.310 回答
0

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

文件:[{pattern:'PATH_TO_ANGULARJS_LIB_FOLDER/angular/*.js',观看:假}]

于 2020-06-24T12:12:43.480 回答