moxiosを使用してREST-APIのテストコードを書く
Jestでテストコードを書くときにmockを作ってテストするケースが多いですね。
この記事ではHTTPクライアントのaxiosを使ってREST-APIを実行したときのテストコードについて書きます。
install
$ yarn add axios
$ yarn add -D moxios // moxiosはdevDependenciesで管理
React
- callback関数を書いています
- APIのdataを取得したらdispatchでpayloadにdataを渡しています
sammple.js
import axios from 'axios';
React.useEffect(() => { hoge(foo) }, [])
const hoge = async (callback) => {
const response = await axios.get('http://localhost:3030');
callback(response.data);
}
const foo = (data) => dispatch({ type: "FUGA", payload: data });
Jest
- axiosのmock「moxios」を使ってdummyのrequest/responseを記述
- test前にmoxiosをinstallして終わるとunistallする
- testコードはasync/awaitで記述
- moxios.waitのコールバック関数にrequest/responseの記述
sample.test.js
import moxios from 'moxios';
describe('moxios tests', () => {
beforeEach(() => {
moxios.install();
});
afterEach(() => {
moxios.uninstall();
});
test('calls hoge callback on axios response', async () => {
const dummy = 'dummy';
moxios.wait(() => {
const request = moxios.requests.mostRecent();
request.respondWith({
status: 200,
response: dummy,
});
});
const mock = jest.fn();
await hoge(mock);
expect(mock).toHaveBeenCalledWith(dummy);
});
});
Author And Source
この問題について(moxiosを使用してREST-APIのテストコードを書く), 我々は、より多くの情報をここで見つけました https://qiita.com/macotok/items/3e07cc483b0fd581d88a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .