角度服务单元测试DoneFn

时间:2018-12-08 18:38:02

标签: angular unit-testing

我正在关注有角度的官方文档,并且可以看到以下代码:

it("#getObservableValue should return value from observable", (done: DoneFn) => {
    service.getObservableValue().subscribe(value => {
      expect(value).toBe("observable value");
      done();
    });
  });

我想知道DoneFn的来源,因为我输入时都没有错误。

1 个答案:

答案 0 :(得分:1)

如果遵循接口定义,则会看到它位于以下位置:

node_modules/@types/jasmine/index.d.ts

/** Action method that should be called when the async work is complete */
interface DoneFn extends Function {
    (): void;

    /** fails the spec and indicates that it has completed. If the message is an Error, Error.message is used */
    fail: (message?: Error | string) => void;
}

您不需要导入或使用它,主要是供参考。我不确定@types的确切工作方式,但是我想如果项目中有@types键入内容,节点知道如何找到定义,因为它们都在该文件夹中建立了索引。

更新:

我发现这是由tsconfig.json配置的

"typeRoots": [
  "node_modules/@types"
],