Je teste actuellement l'un de mes composants React comme ceci:
it('renders correctly', () => {
const tree = renderer.create(<Scene {...props} />).toJSON();
expect(tree).toMatchSnapshot();
});
Mon composant Scene
importe un setting.json
fichier. J'ai ce fichier sur mon instance locale, mais je ne le pousse pas sur mon instance CI. Ainsi, lorsqu'il essaie de l'importer, le fichier est introuvable.
Existe-t-il un moyen de se moquer de ce fichier dans mon test?
Vous pouvez soit utiliser moduleNameMapper
dans vos paramètres Jest pour pointer l'importation vers un fichier json simulé.
{
"moduleNameMapper": {
"setting.json": "<rootDir>/__mocks__/setting.json"
}
}
Ou vous pouvez utiliser jest.mock
dans votre test pour simuler directement le fichier, notez que vous devez ajouter le { virtual: true }
paramètre.
jest.mock('path/to/setting.json', ()=>({
settings: 'someSetting'
}), { virtual: true })
Pour ceux qui cherchent à se moquer de JSON sous la forme d'un Array
, il suffit de renvoyer un tableau à partir du rappel.
jest.mock('./data.json', () => ([1, 2, 3]));
Vous pouvez également renvoyer d'autres types JSON valides: Object
, String
, Number
, Boolean
ou Null
.