如何解决Redux saga yield 单元测试不起作用
我想在线查看 doc 和一些 samples,但仍然无法正常工作。我使用Sinon进行单元测试,我一直报这个错误,卡在这个上面很久了,弄不明白。
期望 { Object (@@redux-saga/IO,combinator,...) } 深度等于 { Object (@@redux-saga/IO,...) }
我的行动
export const loadingStatus = (response) => {
return { type: "LOADING_STATUS",response };
};
我的传奇
export function* mySampleSaga() {
try {
yield put(loadingStatus('loading'));
yield delay(1000);
const config = yield select(getConfig);
const requestCall = new SendingRequest(config);
const linkRequests = yield select(getLinks);
const response = yield call(
[requestService,requestCall.sample],"2020-01-01","2020-12-21"
);
const result = get(response,'entities.requests',{});
yield put(success(result));
yield put(loadingStatus('done'));
} catch (error) {
yield put(sendError(error));
yield put(loadingStatus('done'));
}
}
我的测试
describe('sample saga',() => {
const config = {
sample: "123"
};
const linkRequests = ['12345','5678910'];
it('should update request status - happy path',() => {
const gen = mySampleSaga();
expect(gen.next().value).to.deep.equal(put(loadingStatus('loading'))); // This keep getting error below
});
it('If saga has error',() => {
const gen = mySampleSaga();
const error = new Error('error');
gen.next();
expect(gen.next().value).to.deep.equal(put(sendError(error)));
expect(gen.next().value).to.deep.equal(put(loadingStatus('done')));
expect(gen.next().done).to.equal(true);
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。