私は非同期アクションをreduxでテストしようとしていますが、取得できません。私はノックとaxiosを使用していますので、私はaxiosからrespondeデータを受信しようとしていますノックがAxiosで動作しない動作非同期テストで取得する
私の行動をテストするには、Get:
describe('Async Actions',() => {
afterEach(() => {
nock.cleanAll();
});
it('should load transmissors', (done) => {
const localStorage = {
token: 'a9sd8f9asdfiasdf'
};
nock('https://tenant.contactto.care')
.get('/api/clients/1/transmissors/', {
reqheaders: { 'Authorization': "Token " + localStorage.token }
})
.reply(200, { data: [
{
"id": 12,
"zone": "013",
"client": 1,
"description": "pingente",
"identifier": "",
"general_info": ""
},
{
"id": 15,
"zone": "034",
"client": 1,
"description": "colar",
"identifier": "",
"general_info": ""
}
]});
axios.get(`/api/clients/1/transmissors/`, {
headers: { 'Authorization': "Token " + localStorage.token },
}).then(transmissors => {
console.log(transmissors);
}).catch(error => {
throw(error);
})
done();
});
});
、ここでは私のアクションです:
export function loadTransmissors(clientId){
return function(dispatch){
axios.get(`/api/clients/${clientId}/transmissors/`, {
headers: { 'Authorization': "Token " + localStorage.token },
}).then(transmissors => {
dispatch(loadTransmissorsSuccess(transmissors.data, clientId));
}).catch(error => {
throw(error);
})
}
}
しかし、私console.logでこのエラーを受け取る:
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 3): SyntaxError
私はダン・アブラモフ監督からこの答えを見つけました: How to unit test async Redux actions to mock ajax response
https://github.com/reactjs/redux/issues/1716
誰もがReduxの-thunk.withExtraArgumentでテストを作成する方法を知っていますか?
ありがとうございます。
applyMiddleware(thunk.withExtraArgument({ axios }))
ため
applyMiddleware(thunk)
をだから私は、私を更新:
は、完全なエラーメッセージということですか? – gfullam
このhttps://www.npmjs.com/package/axios-mock-adapterのaxios-mock-adapterをお勧めします – Samo