Javascript 如何使用sinon单元测试redux saga spawn函数

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); } } }

我被困在我的redux传奇电话与产卵呼叫单元测试,需要有人额外的帮助,非常感谢

我的传奇

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));
 });
});