export default {
retrieve() {...},
process: {
getData(source) {
return this.retrieve({id: source.id})
.then((reply) => {
source.reply = reply;
return reply
});
}
}
}
测试
describe("getData", () => {
const source = { id: 1 };
it("calls #retrieve", () => {
spyOn(helpers, "retrieve").and.returnValue(PromiseSpy);
helpers.process.getData(source);
expect(helpers.retrieve).toHaveBeenCalled();
});
});
错误:未定义不是评估this.retrieve({id:source.id})的构造函数。
有人可以帮助我解决我做错的事情吗?
我在stackblitz中添加了一个有效的示例,因此您可以使用它。如果要模拟函数,可以在Jasmine中使用“ and.callFake”。
spyOn(helpers, "fetch").and.callFake(
() => new Promise((resolve, reject) => resolve({data: "mocked"}))
);
const data = await helpers.getList(1);
expect(data).toBe("mocked");
这里是stackblitz的链接。 https://stackblitz.com/edit/jasmine-testing-c2nicd?file=src%2Fhelpers.spec.ts