【发布时间】:2023-04-02 21:03:01
【问题描述】:
我正在尝试测试 emptyBasket 方法,因为我将已弃用的 toPromise() 升级到 lastValueFrom() (rxjs 7.1.0),我只收到错误:
message:'no elements in sequence'
name:'EmptyError'
待测方法:
emptyBasket(): Promise<void> {
return lastValueFrom(this.shoppingClient.emptyBasket()).then(() => this.store.dispatch(new EmptyBasket()));
}
测试:
it('should call emptyBasket on shoppingClient', (done) => {
mockStore.dispatch = jest.fn();
shoppingClientMock.prototype.emptyBasket = jest.fn().mockReturnValue(of());
service.emptyBasket().then(() => {
expect(shoppingClientMock.prototype.emptyBasket).toHaveBeenCalledTimes(1);
expect(mockStore.dispatch).toHaveBeenCalledTimes(1);
expect(mockStore.dispatch).toHaveBeenCalledWith(new EmptyBasket());
done();
},
(err) => {
console.log('error', err)
done();
}
);
});
有人知道如何解决这个问题吗?
非常感谢!
【问题讨论】: