Javascript 如何使用sinon单元测试redux saga spawn函数
我被困在我的redux传奇电话与产卵呼叫单元测试,需要有人额外的帮助,非常感谢 我的传奇Javascript 如何使用sinon单元测试redux saga spawn函数,javascript,unit-testing,react-redux,sinon,redux-saga,Javascript,Unit Testing,React Redux,Sinon,Redux Saga,我被困在我的redux传奇电话与产卵呼叫单元测试,需要有人额外的帮助,非常感谢 我的传奇 export function* sampleTest() { try { yield put(someData1); yield spawn(someData2); yield spawn(someData3); } catch (error) { console.log('error', error); } } }
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);
});
});
或
我试过了,这对我不起作用。
谢谢你现在就帮我找到这份工作:
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));
});
});
谢谢你的帮助 您是否介意显示
someData2
和someData3
是什么类型的函数?同样,可能会开始帮助解决问题,但是当您expect(gen.next(someData2Spy.value).to.be.deep.equal(spawn(someData2))
时,您可能会更改为expect(gen.next().value.).to.be.equal(spawn(someData2))
看看它是否有效?someData2和someData2是一些API调用。我尝试了这个expect(gen.next().value).to.be.equal(spawn(someData2))
有这个错误expected{Object(@@redux saga/IO,combinator,…)}等于{Object(@@redux saga/IO,combinator,…)
更新了我的问题,非常感谢,奇怪。块{Object(@@redux saga/IO,combinator,…)}
两者是否完全相同?
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, combinator, ...) }
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));
});
});