如何在测试中引用未初始化的全局变量



我正在尝试对我的一些代码进行单元测试,但我的代码引用了这个我不能直接访问的库。我的代码在运行时可以访问它,但在编译时不能访问。在本例中,库代码称为setup。我没有使用webpack或任何东西,只是TS节点。

产品代码:

declare let setup: any;
setup.rest = (): void => { // this signature can't change
}

测试代码:

import "jasmine";
describe("App", () => {
beforeEach(() => {
setup = {};
})
it("should have a rest function", () => {
setup.rest();
});
});

我正在使用Jasmine作为测试跑步者。当我运行测试时,我会得到以下错误:

ReferenceError:安装程序未定义

我如何让我的测试初始化这个setup变量并与我的生产代码共享它?

如果我知道您想要初始化函数super

你可以给她加一个间谍。

const setupSpy = TestBed.get(setup);
setupSpy.rest.and.returnValue(add here object/variable to return)

最新更新