问题描述
我的 redux-saga 调用卡住了 spawn 调用单元测试,需要其他人的帮助,非常感谢!
我的传奇
export function* sampletest() {
try {
yield put(someData1);
yield spawn(someData2);
yield spawn(someData3);
} catch (error) {
console.log('error',error);
}
}
}
someData2 code is an API call this one returns an array with one object.
我的测试
describe('For my spawn test',() => {
it('Initialize saga',() => {
const someData2Spy = sinon.spy();
const gen = sampleTest({});
expect(gen.next().value).to.deep.equal(put(someData1));
expect(gen.next(someData2Spy).value).to.be.deep.equal(spawn(someData2)); <--- Does not work
// expect(gen.next()).to.be.deep.equal(spawn(someData3)); <--- Does not work
// expect(gen.next().done).to.equal(true);
});
});
Attempted to wrap undefined property undefined as function
或
Tried expect(gen.next()).to.be.deep.equal(spawn(someData2)); get this error:
expected { Object (@@redux-saga/IO,combinator,...) } to equal { Object (@@redux-saga/IO,...) }
我试过这个 strcat()
对我不起作用。
谢谢
解决方法
现在为我找出这项工作:
describe('For my spawn test',() => {
it('Initialize saga',() => {
expect(gen.next({}).value).to.deep.equal(put(someData1));
expect(gen.next({}).value).to.be.deep.equal(spawn(someData2));
expect(gen.next({}).value).to.be.deep.equal(spawn(someData3));
});
});
感谢您的帮助!