interlingでインポートするeS6モジュールを模します。この記事では、JESTでES6モジュールのインポートを模倣する方法について説明し、モジュールの依存関係をテストするという課題に対処します。ただし、輸入がスパイに置き換えられるジャスミンで使用されるアプローチは、異なるテスト環境のためにJestに直接適用できません。この手法は、ES6モジュールのインポートをモックするために活用できます。 const dosomething =(y)=> console.log(y);
// mymodule.js './dependency'から{dosomething}をインポートします。 デフォルトのエクスポート(x)=> { DOSOMTHING(x * 2); };// mymodule-test.js '../mymodule'からmymoduleをインポートします。 '../dependency'からの依存関係として *インポート; 説明( 'mymodule'、()=> { それ( '入力が2倍で依存関係を呼び出します'、()=> { dependency.dosomething = jest.fn(); //指定された輸出を変異させます mymodule(2); 期待(dependency.dosomething).tobecalledwith(4); }); });
Mockingデフォルトエクスポート
をデフォルトエクスポートでは、「モジュールパス」からインポートモジュール名を使用してインポートしてから、インポートされたオブジェクトのデフォルト値を変異させることができます:
// mymodule.js './mymodule'からmymoduleをインポートします。 '../dependency'からの依存関係として *インポート; 説明( 'mymodule'、()=> { それ( '入力が2倍で依存関係を呼び出します'、()=> { dependency.default = jest.fn(); //デフォルトのエクスポートを変異させます mymodule(2); expect(dependency.default).tobecalledwith(4); //デフォルトに対してアサートします }); });
結論
を使用して、 *構文を使用してエクスポートされたオブジェクトを変異させると、ES6モジュールのインポートをJESTでモックすることが可能です。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3