函数内的 Jasmine spyOn 函数和上次 fn 调用的 return 模拟值
Jasmine spyOn function within function and return mock value from last fn call
我正在尝试编写一个 Jasmine 测试,我在其中获得了如下对象结构:
class User {
public getData(): void {
return {
getPersonalInfo: () => {
...
}
}
}
}
通常,我将其称为 user.getData().getPersonalInfo()。现在,我想在调用 getPersonalInfo()
.
时监视此调用和 return 模拟信息响应
我尝试做的事情:
spyOn(user.getData, "getPersonalInfo").and.returnValue(...)
spyOn(user, "getData").and.callThrough().and.callFake(() => {... fake data ...} )
spyOn(user, "getPersonalInfo").and.callFake(() => {... fake data ...} )
但到目前为止,无论我尝试过什么,都没有用。
我怎样才能做到这一点?
您可以这样存档:
const getPersonalInfoSpy = jasmine.createSpy('getPersonalInfoSpy');
getPersonalInfoSpy.and.returnValue({}); // provide mock here
spyOn(user, "getData").and.returnValue({ getPersonalInfo: getPersonalInfoSpy})
不要忘记为 getPersonalInfoSpy
;
提供适当的模拟
我正在尝试编写一个 Jasmine 测试,我在其中获得了如下对象结构:
class User {
public getData(): void {
return {
getPersonalInfo: () => {
...
}
}
}
}
通常,我将其称为 user.getData().getPersonalInfo()。现在,我想在调用 getPersonalInfo()
.
我尝试做的事情:
spyOn(user.getData, "getPersonalInfo").and.returnValue(...)
spyOn(user, "getData").and.callThrough().and.callFake(() => {... fake data ...} )
spyOn(user, "getPersonalInfo").and.callFake(() => {... fake data ...} )
但到目前为止,无论我尝试过什么,都没有用。
我怎样才能做到这一点?
您可以这样存档:
const getPersonalInfoSpy = jasmine.createSpy('getPersonalInfoSpy');
getPersonalInfoSpy.and.returnValue({}); // provide mock here
spyOn(user, "getData").and.returnValue({ getPersonalInfo: getPersonalInfoSpy})
不要忘记为 getPersonalInfoSpy
;