私は現在、次のようなReactコンポーネントの1つをテストしています:
it('renders correctly', () => {
const tree = renderer.create(<Scene {...props} />).toJSON();
expect(tree).toMatchSnapshot();
});
私のコンポーネントScene
はsetting.json
ファイル。ローカルインスタンスにそのファイルがありますが、CIインスタンスにプッシュしません。そのため、インポートしようとしても、ファイルは見つかりません。
私のテストでこのファイルをモックする方法はありますか?
Jest設定で moduleNameMapper
を使用して、インポートがモックされたjsonファイルを指すようにすることができます。
{
"moduleNameMapper": {
"setting.json": "<rootDir>/__mocks__/setting.json"
}
}
または、テスト内で jest.mock
を使用してファイルを直接モックできます。{ virtual: true }
パラメーターを追加する必要があることに注意してください。
jest.mock('path/to/setting.json', ()=>({
settings: 'someSetting'
}), { virtual: true })
JSONをArray
の形式でモックする場合は、コールバックから配列を返すだけです。
jest.mock('./data.json', () => ([1, 2, 3]));
他の有効なJSONタイプを返すこともできます:Object
、String
、Number
、Boolean
、またはNull
。