J'ai récemment voulu tester qu'une méthode personnalisée est appelée de manière conditionnelle dans le fichier componentDidMount
d'un composant React.
componentDidMount() {
if (this.props.initOpen) {
this.methodName();
}
}
J'utilise Jest comme cadre de test, ce qui inclut jest.fn()
pour les mocks/spies. J'ai lu que cela serait assez trivial à tester avec Sinon, en faisant quelque chose comme ce qui suit :
sinon.spy(Component.prototype, "methodName");
const wrapper = mount(<Component {...props} />);
expect(wrapper.instance().methodName).toHaveBeenCalled();
J'essaie de recréer cela avec Jest de la manière suivante :
Component.prototype.methodName = jest.fn();
const wrapper = mount(<Component {...props} />);
expect(wrapper.instance().methodName).toHaveBeenCalled();
Ce code échoue et génère l'erreur suivante :
jest.fn() value must be a mock function or spy.
Received:
function: [Function bound mockConstructor]
Est-il possible de tester cette fonctionnalité avec Jest ? Et si oui, comment ?