redux-sagasとgenerator関数を使用するReactネイティブプロジェクトのJestを使用してテストを作成するところです。私はテストで多くの経験を持っていないので、これが何か基本的なものであれば、私の無知を許してください。redux-sagaのjestテストで複数の値を生成するには
私は次の関数を持っています。これは、別の関数の結果を返すことに基づいて変数を定義しています。私はそれがgetAssetById
を呼び出すと、bearerToken
が定義されていない私のテスト
const stepper = (fn) => (mock) => fn.next(mock).value
test('getAssets',() => {
const step = stepper(getAssets(FixtureAPI))
const bearerToken = 'bearer_test_token'
const timelines = 'mocked for brevity'
expect(step()).toEqual(select(selectBearerToken))
expect(step()).toEqual(select(selectTimelines))
expect(step(timelines)).toEqual(call(FixtureAPI.getAssetById(bearerToken, 'B13fGCE_l')))
})
問題
export function * getAssets (api) {
const bearerToken = yield select(selectBearerToken)
const timelines = yield select(selectTimelines)
if (timelines) {
// Do stuff with timelines
const response = yield call(api.getAssetById, bearerToken, 'abc123')
}
}
ありがとうございます。私は前の 'step()'に結果を渡すことは後で利用できないと考えて間違っていました。 –