如何在Angular 2 spec文件中处理require()

时间:2017-03-08 21:12:20

标签: angular angular2-testing

我有一个类似于下面的Angular 2服务。它运行正常,但是在运行单元测试时(即使没有任何预期),它会因以下TypeError而失败。我的服务是用TypeScript编写的,并且具有正确的导入。但是,有一个用JavaScript编写的节点模块(作为module.export = ....),因此我无法导入它,而是需要'它。我想知道如何模仿这个或正确注入它,所以它不会在单元测试中失败。它在实践中运行良好,只是测试用例失败。

Angular 2 Servive:

let x = require('some-file')

@Injectable()
export class MyService {
  constructor() {
    x(foo)
  }
}

Angular 2测试文件:

describe('Service: MyService', () => {

  let service: MyService;

  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [MyService]
    });
  });

  beforeEach(inject([NativeBridgeService], s => {   
    service = s;
  }));

});

TypeError:x不是函数

1 个答案:

答案 0 :(得分:0)

你必须为该lib安装打字。然后你可以使用导入不需要的lib。尝试

npm install @types/<here goes your lib name>

如果他们不存在,请自己写下来。