TypeError:应该不是函数

时间:2018-07-25 08:23:55

标签: angular typescript angular-cli karma-jasmine should.js

我最近已升级到Angular 6,所有运行良好的测试均失败,并出现以下错误

  

TypeError:应该不是函数

我正在使用Angular-Cli 6,而我最好的猜测是,因为'should'(npm-package:https://www.npmjs.com/package/should)没有合适的输入方式

我在使用should函数的每个文件中添加了以下两行。

import should = require('should');
const persist = should; // need to use should library for tests to run https://stackoverflow.com/a/25563303/1373856

此外,我使用的是“类型”:“ 2.1.1” 有人遇到过类似的问题吗?

1 个答案:

答案 0 :(得分:0)

这不是您在测试中包含依赖项的方式(至少,这不是我学会的方式)。

打开karma.conf.js。在plugins导出下,添加您的依赖项:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('should'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      ...

现在,在测试文件中,您只需要声明一个变量作为对全局函数的引用:

declare var should: any;

如果您有键入内容,也可以键入它以在您的IDE中具有智能感知。