【问题标题】:TypeError: should is not a functionTypeError:应该不是函数
【发布时间】:2019-01-01 23:50:24
【问题描述】:

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

TypeError:应该不是函数

我正在使用 Angular-Cli 6,我最好的猜测是这是因为“应该”没有合适的类型(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” 有人遇到过类似的问题吗?

【问题讨论】:

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


    【解决方案1】:

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

    打开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 中输入它来进行智能感知。

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 1970-01-01
      • 2020-06-29
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 2020-06-11
      • 2021-06-05
      相关资源
      最近更新 更多