我试图测试与流量储存一些非常简单的功能异步API测试流量商店在特定事件的呼叫服务,使http
请求并返回Promise
,店面看起来像:用茉莉花
case UserActions.FETCH_USER_BY_ID:
const userService = new UserService();
userService.fetchUserById(action.id)
then(user => {
this.user = user;
this.emit(USER_FETCH_COMPLETED);
});
为了测试我使用Jasmine
,我的测试用例是这样的:
it('should fetch user by id',() => {
const userStore = require('../stores/userStore');
const mockUser = {name: 'test', id: 123};
spyOn(UserService.prototype, 'fetchUserById')
.and.returnValue(Promise.resolve(mockUser));
dispatchEvent();
expect(userStore.user).toEqual(mockUser);
})
正如所预期的这个测试,如果失败了,因为对Promise
异步行为,我了解这里的问题,但我无法找到解决方案如何说测试等到Promise
从userService
解决。