1
私は単体テストにはかなり新しいので、どんなノービスをも許してください。ユニットJestでredux async関数をテストする
ファイルapi.js
には、このアプリケーションのすべてのAPI呼び出し関数があります。各関数は約束を返します。
api.js今私がテストしようとしているReduxの非同期アクションに来
const api = {
getData() {
return superagent
.get(apiUrl)
.query({
page: 1,
});
},
}
を:ここでは、それがどのように見えるのです。
getDataAction.test.js:私のテストファイルでは、私はこれを試してみた、
export function getData(){
return dispatch => {
api.getData()
.end((err, data) => {
if (err === null && data !== undefined) {
console.log(data);
} else if (typeof err.status !== 'undefined') {
throw new Error(`${err.status} Server response failed.`);
}
});
}
}
今
getDataAction.js:それは次のようになります
jest.mock('api.js');
describe('getData Action',() => {
it('gets the data',() => {
expect(store.dispatch(getData())).toEqual(expectedAction);
});
});
これは私にエラーを投げます:
TypeError: Cannot read property 'end' of undefined
私は間違っていますか?今、私はJestのデフォルトのautomockerでapi.jsをモックすることができますが、end
でコールバック関数を実行するケースをどうすれば処理できますか?助けてくれてありがとう!