我試圖測試與流量儲存一些非常簡單的功能異步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
解決。