J'ai un objet fictif que j'utilise pour simuler react-native
:
const MyMock = {
MockA: {
methodA: jest.genMockFn()
},
MockB: {
ObjectB: {
methodA: jest.genMockFn(),
methodB: jest.genMockFn(),
}
}
};
jest.mock('react-native', () => {
return MyMock;
});
Je déclare l'objet en dehors de jest.mock
car j'en ai aussi besoin plus tard dans mes tests :
describe('MyClass', () => {
beforeEach(() => {
MyMock.MockB.ObjectB.methodA.mockClear();
MyMock.MockB.ObjectB.methodB.mockClear();
});
//some other code
J'obtiens cette erreur :
L'usine de modules de
jest.mock()
n'est pas autorisé à faire référence à des variables hors du champ d'application.
Le problème est que je déclare MyMock
en dehors de jest.mock
. Mais je n'ai pas le choix, d'après ce que je vois.
Comment puis-je donc faire fonctionner le code tout en conservant MyMock
en dehors de jest.mock
?