ユーザ用ツール

サイト用ツール


reactnative:jest

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
reactnative:jest [2019/03/05 00:52]
ips
reactnative:jest [2019/03/05 01:09] (現在)
ips
ライン 10: ライン 10:
 npm i jest npm i jest
 </​code>​ </​code>​
 +
 +===== package.json =====
 <​code>​ <​code>​
 //​package.jsonに追加 //​package.jsonに追加
ライン 16: ライン 18:
 }, },
 "​jest":​ { "​jest":​ {
-  "​preset":​ "​jest-expo"​+  "​preset":​ "​jest-expo"​
 +  "​testEnvironment":​ "​node"​ //​必須ではない。jsdomを無効にしてテストを早くする
 } }
 </​code>​ </​code>​
 <​code>​ <​code>​
 npm test  npm test 
 +npm test -- --watch ​ // ウォッチモードの場合
 </​code>​ </​code>​
  
ライン 189: ライン 193:
 }) })
 </​code>​ </​code>​
 +
 +==== スパイは基本のfn()の組み合わせ ====
 +<code javascript App.test.js>​
 +describe("​スパイ",​()=>​{
 +test("​スパイは基本のfn()の組み合わせ",​ () => {
 +
 +    // オリジナル実装をバックアップ
 +    const originalAdd = math.add;
 +  ​
 +    // オリジナル実装でモックする
 +    math.add = jest.fn(originalAdd);​
 +  ​
 +    // オリジナル実装のスパイができるようになる
 +    expect(app.doAdd(1,​ 2)).toEqual(3);​
 +    expect(math.add).toHaveBeenCalledWith(1,​ 2);
 +  ​
 +    // 実装を変更する
 +    math.add.mockImplementation(() => "​mock"​);​
 +    expect(app.doAdd(1,​ 2)).toEqual("​mock"​);​
 +    expect(math.add).toHaveBeenCalledWith(1,​ 2);
 +  ​
 +    // オリジナル実装に戻す
 +    math.add = originalAdd;​
 +    expect(app.doAdd(1,​ 2)).toEqual(3);​
 +  })
 +})  ​
 +</​code>​
 +
 +
reactnative/jest.1551714743.txt.gz · 最終更新: 2019/03/05 00:52 by ips