javascript - Pruebas de montaje con Enzyme en componentes de native-base
Estaba intentando usar el montaje de enzyme para probar algunos componentes compuestos. Pero recibí un mensaje de error
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
La pantalla de inicio de sesión se exporta como una clase por defecto, por lo que la forma en que importo la clase es correcta. Luego probé cada componente en la clase LoginScreen y me di cuenta de que la prueba solo falla en los componentes de native-base. Pero no estaba seguro de la razón y no hay documentación que explique esta situación.
Las pruebas fallaron en los cinco componentes a continuación.
import { Form, Icon, Input, Item, Label } from "native-base";
import React from 'react';
import LoginScreen from "../../src/views/LoginScreen/index";
import { mount, render } from 'enzyme';
import {TesterUtils} from "../__utils__/Tester";
import {Provider} from "mobx-react/custom";
import {RootServiceInjector} from "../../src/services/injection";
describe("login function with mount", () => {
it("try with mount", () => {
const testerUtils = new TesterUtils();
const rootService = testerUtils.getServiceRoot();
const wrapper = mount(
<Provider {...{[RootServiceInjector]: rootService}}>
<LoginScreen/>
</Provider>
);
});
});
¿Hay alguien más que se haya encontrado con este problema y tenga una solución? ¡Muchas gracias!