Jasmine:如何监视方法回调:method.then()
Jasmine : How to SpyOn a method callback : method.then()
在我的 Angular 4.0.0 应用程序中,我有这个方法,在我的组件中调用。
此方法在服务中调用:
this.myService.myMethod(param).then(any => {
console.log("success case")
})
.catch(error => {
console.log("error");
}
});
};
因为我正在进行单元测试,所以我通过模拟服务来隔离我的组件:我正在模拟这个方法,如下所示:
myMethodSpy= spyOn(service, 'myMethod').and.callFake((reg) => {
return Observable.of('always error message');
});
但是执行的时候好像没有调用我的spyMethod:
TypeError: this.service.myMethod(...).then is not a function
关于问题的起源有什么想法吗?
const pMock = {then: () => 'something'}
myMethodSpy= spyOn(service, 'myMethod').and.returnValue(pMock);
或者你可以return一个实际的承诺。
const pMock = new Promise((resolve, reject) => {
resolve(someValue);
// or reject("failure reason");
});
myMethodSpy= spyOn(service, 'myMethod').and.returnValue(pMock);
在我的 Angular 4.0.0 应用程序中,我有这个方法,在我的组件中调用。
此方法在服务中调用:
this.myService.myMethod(param).then(any => {
console.log("success case")
})
.catch(error => {
console.log("error");
}
});
};
因为我正在进行单元测试,所以我通过模拟服务来隔离我的组件:我正在模拟这个方法,如下所示:
myMethodSpy= spyOn(service, 'myMethod').and.callFake((reg) => {
return Observable.of('always error message');
});
但是执行的时候好像没有调用我的spyMethod:
TypeError: this.service.myMethod(...).then is not a function
关于问题的起源有什么想法吗?
const pMock = {then: () => 'something'}
myMethodSpy= spyOn(service, 'myMethod').and.returnValue(pMock);
或者你可以return一个实际的承诺。
const pMock = new Promise((resolve, reject) => {
resolve(someValue);
// or reject("failure reason");
});
myMethodSpy= spyOn(service, 'myMethod').and.returnValue(pMock);