Javascript 使用Jest测试Saga生成器函数
我试图使用Jest为这个生成器函数Javascript 使用Jest测试Saga生成器函数,javascript,unit-testing,jestjs,redux-saga,Javascript,Unit Testing,Jestjs,Redux Saga,我试图使用Jest为这个生成器函数logOffSaga编写单元测试。我试了好几种方法,但都找不到一个合适的方法来处理这个承诺。有人能帮我解决这个问题吗 export function abcFunction() { return api(EndPoints.CONTROLS) .post('logoff') .then(response => ({ response })) .catch(error => ({ error })); } export f
logOffSaga
编写单元测试。我试了好几种方法,但都找不到一个合适的方法来处理这个承诺。有人能帮我解决这个问题吗
export function abcFunction() {
return api(EndPoints.CONTROLS)
.post('logoff')
.then(response => ({ response }))
.catch(error => ({ error }));
}
export function* logOffSaga() {
yield take(LOGOFF);
const { response, error } = yield abcFunction();
if (response && response.status === ResponseCodes.OK) {
yield something();
} else if (error) {
yield somethingElse();
}
}
单元测试:
const genlogOffSaga = logOffSaga();
it('should wait for LOGOFF', () => {
expect(genlogOffSaga.next().value).toEqual(take(LOGOFF));
});
如何根据
abc函数的返回值测试其余代码?请显示注销操作。
测试这一点会更加清楚。注销是您正在执行的操作吗?请显示注销操作。
测试这一点会更加清楚。注销是您正在执行的操作吗?例如,使用Jasmine的spies,您可以在api.post()方法上创建一个spy对象,并返回一个立即解决的承诺。更多信息:谢谢,但我想用笑话。对不起,我的坏!Jest也有类似的功能,他们称之为mocking:文档中有一节是关于它的。请看@GabrielePetrioli谢谢,伙计,但他们正在使用磁带。我想从Jest获得它。例如,使用Jasmine的spies,您可以在api.post()方法上创建一个spy对象,并返回一个立即解决的承诺。更多信息:谢谢,但我想用笑话。对不起,我的坏!Jest也有类似的功能,他们称之为mocking:文档中有一节是关于它的。请看@GabrielePetrioli谢谢,伙计,但他们正在使用磁带。我想从Jest.import{LOGOFF}从'/Types'导入它;导出函数Logoff(){return{type:Logoff,payload:null};}const action='Logoff';它('应该等待注销',()=>{expect(genlogOffSaga.next(action.value).toEqual(take(LOGOFF));});从“./Types”导入{LOGOFF};导出函数Logoff(){return{type:Logoff,payload:null};}const action='Logoff';它('应该等待注销',()=>{expect(genlogOffSaga.next(action.value).toEqual(take(LOGOFF));});