import React from "react";
import Adapter from "enzyme-adapter-react-16";
import { configure, shallow, mount } from "enzyme";
import Banking, { BankingForm } from './Banking';
configure({ adapter: new Adapter() });
describe('FormikHandlers', () => {
describe('handleChangeEvent', () => {
it('change value for firstBankName', async () => {
const component = shallow(<Banking />);
expect(component.find(BankingForm)).toHaveLength(1);
});
});
});
здесь у меня есть Banking как родительский компонент и bankForm как дочерний компонент, который имеет все поля. Я использую formik render prop внутри родительского компонента Baking. Этот тест не проходит, потому что я не могу получить компонент "BankingForm" внутри компонента, когда он отображается неглубоко. Я что-то не так делаю с точки зрения энызма?





Вы можете использовать mount для рендеринга всего компонента или использовать dive, чтобы проникнуть на один уровень глубже в дерево.
component.dive (). find (BankingForm) нравится?
Да, но все равно зависит от структуры компонентов. Взгляните на пример документа dive.
На самом деле это была оболочка <Form /> внутри компонента. Так что он не был доступен напрямую.
вы можете показать свои компоненты? вы там используете какой-нибудь HOC? Кроме того,
.dive()/mount()может помочь, мне интересно, лучше ли лучше подходить к тщательному тестированию