【jest】基礎 RSpecと比較 モック関数について
はじめに
jestを学習し始めたので、簡単にまとめる。
主に公式ドキュメントの序盤のみになります。
https://jestjs.io/en/
jest
test('1+1は2', () => {
expect(1+1).toBe(2);
});
RSpec
RSpec.describe '足し算' do
it '1+1は2' do
expect(1 + 1).to eq 2
end
end
jestでモック関数を作成
function forEach(items, callback) {
for (let index = 0; index < items.length; index++) {
callback(items[index]);
}
}
test('1+1は2', () => {
expect(1+1).toBe(2);
});
RSpec.describe '足し算' do
it '1+1は2' do
expect(1 + 1).to eq 2
end
end
jestでモック関数を作成
function forEach(items, callback) {
for (let index = 0; index < items.length; index++) {
callback(items[index]);
}
}
function forEach(items, callback) {
for (let index = 0; index < items.length; index++) {
callback(items[index]);
}
}
↑こういった、配列とコールバックを引数に受け取る関数を定義して、
const mockCallback = jest.fn(x => 42 + x);
forEach([0, 1], mockCallback);
受け取った数値に42を足すモック関数をjest.fn
で定義。
mockCallbackに代入。
これで、jestが用意するメタ情報を持っているダミーの関数ができる。
ここから、テストを作成し、コールバックに適切にパラメータが渡っているか、実行結果が返せているかを検証する。
//mockCallbackが呼ばれる回数は2回
expect(mockCallback.mock.calls.length).toBe(2);
//1回目にモック関数が呼ばれたときの引数の1番目は’0’
expect(mockCallback.mock.calls[0][0]).toBe(0);
//2回目にモック関数が呼ばれたときの引数の1番目は’1’
expect(mockCallback.mock.calls[1][0]).toBe(1);
//1回目にモック関数が呼ばれたときのリターンは’42’
expect(mockCallback.mock.results[0].value).toBe(42);
ここまでがドキュメントに載っているものです。
更に、例えば
//2回目にモック関数が呼ばれたときのリターンは’43’
expect(mockCallback.mock.results[1].value).toBe(43);
こちらのテストもパスすることになる。
終わりに。
最後まで読んで頂きありがとうございます
転職の為、未経験の状態からReact,Rails等を学習しております。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございました。
Author And Source
この問題について(【jest】基礎 RSpecと比較 モック関数について), 我々は、より多くの情報をここで見つけました https://qiita.com/waniwaninowani/items/13971de58db26069495c著者帰属:元の著者の情報は、元の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 .