Tengo un componente funcional Foo.js que se parece a esto:
const Foo = () => { return ( <View></View> ) } export default FooEste componente funciona bien cuando se renderiza en la aplicación .
El problema es cuando se intenta probar el componente de esta manera:
import renderer from 'react-test-renderer' import Foo from './Foo' test('testing', () => { const component = renderer.create(<Foo />) <--- Error occurs }) Se produce un error al ejecutar esta prueba (al llamar a renderer.create ), que dice: Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.
Lo extraño es que la prueba pasa sin ningún error si coloco el componente dentro del archivo de prueba :
const Foo = () => { return ( <View></View> ) } test('testing', () => { const component = renderer.create(<Foo />) })Resulta que la causa de esto fue que el componente exportado se burló, debido a que tenía automock configurado como verdadero en mi configuración de broma.
Cambiando esto en jest.config.js :
automock: trueDentro de esto:
automock: falseResuelve el problema.
Pregunta : ¿Por qué el componente autosimulado no devuelve nada? ¿Podría resolverse eso de alguna manera para que funcione con automock configurado como verdadero?