Я пытаюсь выполнить юнит-тест моего приложения реакции, которое использует redux-saga.
Ниже мой сага файл:
// sagas.js
export function* getDataFromServer() {
try {
const foo = yield select(fooSelector());
const bar = yield call(barRequest);
yield put(actions.SOME_ACTION.request());
const mainResponse = yield call(
api.getData,
bar,
foo.some_number,
foo.some_other_number,
);
} catch () {
throw error;
}
}
Ниже приведен мой тестовый блок:
// sagas.test.js
describe("getDataFromServer", () => {
const generator = getDataFromServer();
it("should get Data", () => {
expect(generator.next().value).toEqual(select(fooSelector()));
expect(generator.next().value).toEqual(call(barRequest));
expect(generator.next().value).
toEqual(put(actions.SOME_ACTION.request()));
expect(generator.next().value).toEqual(
call(
api.getData,
bar,
foo.some_number,
foo.some_other_number,
)
);
});
});
но при последнем ожидании выдает ошибку, что "не может прочитать свойство" some_number "из undefined. Это очевидно, поскольку jest не запускает все эффекты в модульном тесте саги, но мне было интересно, есть ли способ Я могу передать значение нескольких выходов в последнем утверждении - что-то вроде этого:
expect(generator.next(foo, bar).value).toEqual(
call(
api.getData,
bar,
foo.some_number,
foo.some_other_number,
)
);