¿Cómo burlarse de un método de ciclo de vida del componente React con Jest y Enzyme?
Los documentos de la enzima para la representación completa del DOMaquí contiene el siguiente ejemplo de espionaje de un método de ciclo de vida con Sinon:
describe('<Foo />', () => {
it('calls componentDidMount', () => {
sinon.spy(Foo.prototype, 'componentDidMount');
const wrapper = mount(<Foo />);
expect(Foo.prototype.componentDidMount.calledOnce).to.equal(true);
});
});
¿Cuál es el equivalente a esto usando funciones simuladas de Jest?
Estoy usando Create-React-App, y preferiría no incluir a Sinon si se puede lograr lo mismo con Jest.
Así es como se vería la prueba:
describe('<App />', () => {
it('calls componentDidMount', () => {
jest.fn(App.prototype, 'componentDidMount');
const wrapper = mount(<App />);
expect(App.prototype.componentDidMount.mock.calls.length).toBe(1);
});
});
En este caso,App.prototype.componentDidMount
no hace referencia a la misma función espía como lo haría con Sinon.
Los documentos de Jest sobre cómo funcionan realmente las funciones simuladas son un poco limitados. He seguido la discusiónaquí en torno a lo que está haciendo jest.fn (), pero parece que no es realmente equivalente a sinon.spy ().
¿Cómo puedo replicar esa prueba con Jest?