2017-10-04 4 views
1

私はモックでテストを実行しています。しかし、条件を追加して、同じテストを使用してAPIをテストすることもできます。テストを条件付きで実行します。無関心のモックを使用してもしなくても使用できます。

ただし、条件を追加すると、その条件がtrueかfalseかに関係なく、条件を無視してモックが適用されることはありません。

import config from 'config'; 
if(!config.test.useNetwork) { 
    jest.mock('api/companies'); 
    jest.mock('api/articles'); 
} 

import { searchCompany } from 'api/companies'; 
... 

つの質問:

  1. 条件モックを追加する方法のための任意のアイデア? jest.mockをインポートする前に呼び出す必要があるかもしれないので、モックが適用されないと思いますか?
  2. ネットワーク上でテストするための規約は何ですか?私がモックを使っているのであれば、ネットワークリクエストコードではなく、モックを実際にテストしています。しかし、私がモックを使用しないと、私は不必要にAPIに当たっています。

答えて

1

ワン:

はい、jest.mock()"hoisted to the top of the code block"です。しかし、jest.doMockは吊り上げられていません。だから、あなたは、あなたは、このように欲しいものを達成することができます

const config = require('./config').default; 
if(!config.test.useNetwork) { 
    jest.doMock('api/companies'); 
    jest.doMock('api/articles'); 
} 

const { searchCompany } = require('api/companies'); 

2:

物議質問だこと。 StackOverflowには適していません。私はそれに触れていません。

関連する問題