2016-08-15 8 views
3

スナップショットのテストには、1つの反応コンポーネント、単純なダミーモックをモックする必要があります。可変参照外のJest.mock

私はReact.Component内部モック関数を呼び出すしようとすると、私はエラーました:

The second argument of jest.mock() is not allowed to reference any outside variables.

しかし、私はrequire('react').Componentを呼び出す場合は、作品を! これを正しく行うための人間的な方法はありますか?

マイコード:

//This one fails 
import React from ('react'); 
... 
    jest.mock('...',() => { return class ... extends React.Component { 
      render(){ 
       return <span/> 
      } 

    }}); 

//This one works 
import React from ('react'); 
... 
jest.mock('...',() => { return class ... extends require('react').Component { 
      render(){ 
       return <span/> 
      } 

    }}); 

答えて

1

Based on GitHub thread

This used to be a bug that we fixed. In a mock you can only require things locally and you aren't allowed to access external variables.

あなたはあなたのコード、それは

jest.mock('...',() => { 
    const React = require ('react') 
    return class ... extends React.Component { 
    render() { 
     return <span /> 
    }  
    } 
}) 
+0

を動作させるためにこの方法を変更することができますしかし、あなたは、変数を変更したい場合は? 1つのオブジェクトを持つ関数をモックし、1つのテストでテスト目的のために真でなければならないと考えてください。今、どうすればいいのですか? –