高度なテスト冗談ユニット

  冗談指示コマンドウィンドウ

  ポータル冗談ユニットテストを学習するとき、我々は冗談コマンドはパラメータが--watchAll、それをテストするために随時導入リスニングテストファイルテストファイルやファイルを変更する提供与えます。しかし、これはまた、問題を作成し、限り内容が少し変わって、冗談は、すべてのテストを再度実行しているリソースの無駄を配置します。それは--watchAllモードをさらに最適化することが可能である、それはどのような場所では、ありますか?コマンドウィンドウで。実行NPMの実行テスト、テストが完了すると、あなたは--watchAllモード用に最適化され、多くのヒント(ウォッチの使用を)、わかります

   fを押すとのみ失敗したテストを実行します。を押し、Fキーを唯一失敗したテストケースを実行するために、モデルを入力します。私たちは、NPMの実行テストを実行し、テストが失敗有することが判明した場合、我々はそれfを押して、失敗したテストケースを実行したいです。ちょうどそのようなモック変更した名前の要求として、テストケースのエラーを変更するには、あなたを表示:「ジェイソン」

jest.mock(' 要求'、()=> {
     リターン(URL、コールバック)=> { 
        コールバック(NULL' OK '、{名:' ジェイソン' })
    } 
})。

   この場合、再実行再度試験(watchAllモード)、コマンドウィンドウが表示エラー、及びカーソルが入力を待って、点滅している間、複数表示するwの底部を押し、表示されます。3つのテストは、我々はテストコードを変更する必要はありませんので、もちろん、確かに間違っている、スキップので、そこでショー上記画像の内容は、Wキーを押し、そしてfは、唯一の失敗したテストを実行しました

 

   この場合、テストコードを変更し、テストを保存する権利は成功するが、それはまた、単に間違ったテストを実行しました。あなたはfunc.test.jsファイルや他のテストケースを変更し、この時点では、テストを実行することが判明されることはありません、表示はありませんが見つかりました。テストに失敗しました。

  その後、我々はモード「のみ失敗したテストを実行する」退出F Fモード、冗談もプロンプトが表示され、プレスから撤退すべきです。そして、fを押すと、再びそれを再実行するwatchAllモード、すべてのテストケースを返されました。

  モードFの使用は、NPM走行テストをf、成功への変更に失敗し、終了Fこのモードに応じて、テストに失敗しましたさ。

  変更されたファイルに関連する唯一の実行テストにOを押します。oを押すと、唯一のテストを実行するファイルを変更しました。ファイルが変更された場合、それは、テスト実行するテストファイルには他の変更を提出しませんリアルタイムで冗談モニターファイルの変更、それは実行されません。冗談はどのようにそれを変更したファイルを知ることであることを?それは、知っているのgitの助けを必要としませんでした。Gitがあるため、追跡ファイルの変更です。ロングコードワークエリア、コントラストの倉庫面積などとして、我々は、変更するファイルを知っています。そのプロジェクトは、gitのプロジェクトになる必要があります。ルートディレクトリ、最初に建てられ.gitignoreファイルとその後、gitの初期化では、プロジェクトがGitプロジェクト、gitのリポジトリにそれ以外の場合は、意志node_modulesになります。このとき、比較のために、テストファイルfunc.test.jsは3、fetchData.test.js、forEach.test.js、math.test.jsに分割します 

jest.mock(' 要求'、()=> {
     リターン(URL、コールバック)=> { 
        コールバック(NULL' OK '、{名:'SAM ' })
    } 
})。

CONSTなFetchData =必要とする(' ./func ' ).fetchData。

テスト(' データを返すべきときなFetchData要求の成功'、()=> {
    リターン。なFetchData()、その後(RES => { 
       期待(RES).toEqual({名:' SAM '
CONSTのforEach =(アレイ、コールバック)=> {
     ため(LETインデックス= 0、インデックス<Array.lengthとすること;インデックス++ ){
         CONST要素= 配列[インデックス]、
        コールバック(エレメント); 
    } 
} 

テスト(' 万一コールコールバックのforEach '、()=> {
     CONST mockFun jest.fn =(); // モック関数
    のconstアレイ= [ 12 ]; 

    のforEach(アレイ、mockFun); // 代わりモックと実際のコールバック関数の 
    期待(mockFun。 mock.calls.length).toBe(2 
})
constの数学=が必要です(' ./func ' ); 

試験(" コールがmath.add "()=>、{
   CONST addMock = jest.spyOn(数学、" 追加" ); 

  // 実装オーバーライド 
  addMock.mockImplementation(()=> " 偽の" ); 
  (addMock(期待します12。))toEqual(" " ); 

  //は、元の実装復元
  addMock.mockRestoreを(); 
  (addMock(期待12。))toBeUndefined(); 
}); 

テスト(' 万一追加コール'、()=> { 
    関数callMath(A、B){ 
        リターンは(A + math.add B); 
    } 
    CONST addMock = jest.spyOn(数学、' 追加' ); 
    callMath(12 ); 
    (addMock).toBeCalled()期待;   // toBeCalledは、その関数が呼び出されていません。 
})

  「初期化gitの」-mコミットgitのgitの追加。とはgitリポジトリにファイルを提出します。あなたは、NPMの実行テストを実行、テスト、oを押し、モードにOを次回起動時には、あなたがプロンプトに、noファイルの変更を見ることはできません。

 

   その後、空白行、コンソールを見て、唯一forEach.test.jsテストファイルが実行されるを追加するなどのforEachとして、ファイルを変更、他のテストファイルを実行し、ファイルfetchData.test.js、2つのテストファイルを変更しませんでした実行、または唯一のテストを実行するためのファイルを変更しました。別のパラメータ冗談コマンド、を思い出させる。この時 - 時計、-oモードはそれを--watchではありません。--watchに--watchAllでpackage.json 

" スクリプト" :{
     " テスト"" 冗談--watch " 
}、

  再起動して、NPMの実行テスト、-aモードで、すべてのテストを実行し、それが--watchAllは、元--watchは、--watchAll、モデルは、モードO、そのラインが相互運用可能であるとき、ということではありません。

 

   テストは、ファイル名に基づいて行われ、Pで再び見て、私たちは、ファイル名を提供し、それはあなたがファイル名と一致する正規表現を使用することができ、ファイルをテストします。Pで、パターンを入力し、それがテストファイル名のすべてを取得するための一致を使用しますが、フェッチ入力するように求め、それが実行され、fetchData.test.jsテストファイルを見つけました。あなたが任意のテストファイルを見つけることができない場合は、任意のテストを実行しません。

 

   t検定名が一致し、各テストの説明があり、テストの名前が記述呼び出すことができます。テスト名を指定して、それだけでこの試験では、同じ使用とPを走りました。

  qはユニットテストが実行されて入力し、ただEnterキーを押します、どのようなモードに関係なく、それはテストに対応するパターンを実行します、時計を終了します。

おすすめ

転載: www.cnblogs.com/SamWeb/p/11826646.html