角度测试不包括从node_modules导入

时间:2017-04-29 19:06:39

标签: angular

我无法在角度为2的测试中通过node_modules解析外部库。我错过了什么?

我有一个从node_modules导入库的服务:

import {Injectable} from '@angular/core';
import Lib from 'lib';
@Injectable()
export class Service { 
  stuff() {
    return Lib.doStuff();
  }
}

当我运行应用程序时,Lib已定义,我可以使用该库。

当我在该类上运行测试时,Lib未定义。

describe('tests', () => {
  let service: Service;
  beforeEach(() => service = new Service());
  it('test', () => {
    service.stuff();
  });
});

测试本身有效。如果我测试一个硬编码的返回值就可以了,所以整体设置似乎没问题。

我使用了使用angular-cli创建的项目骨架。一些版本:

@angular/cli: 1.0.0
node: 6.10.2
os: linux x64
@angular/common: 4.0.2
@angular/compiler: 4.0.2
@angular/core: 4.0.2
@angular/forms: 4.0.2
@angular/http: 4.0.2
@angular/platform-browser: 4.0.2
@angular/platform-browser-dynamic: 4.0.2
@angular/router: 4.0.2
@angular/cli: 1.0.0
@angular/compiler-cli: 4.0.2

我对角度很新,所以我不知道幕后会发生什么。我希望所有的进口都能得到解决。

不是这样的吗?

1 个答案:

答案 0 :(得分:0)

如果您的lib import Lib from 'lib'是Lib符号,则只能使用export default,如果不是,则需要使用以下公式之一:

import * as Lib from 'lib'

import {Lib} from 'lib'

了解有关Mozilla Developer Network中导入的更多信息