Попробуйте изменить селектор в find(selector)
на следующее, чтобы нацелить элемент на data-test="nav-bar"
. Возможно, вам придется использовать dive () , чтобы получить доступ к внутренним компонентам компонента стиля:
import React from "react";
import { shallow } from "enzyme";
import NavBar from "./NavBar";
describe("NavBar component", () => {
it("Should render without errors.", () => {
const component = shallow(<NavBar />);
// Use dive() to access inner components
const navbar = component.dive().find('[data-test="nav-bar"]');
// Test that we found a single element by targeting length property
expect(navbar.length).toBe(1);
});
});
Вы также можете использовать синтаксис объекта, если предпочитаете:
const navbar = component.find({'data-test': 'nav-bar'});
Вместо использования dive()
вместо shallow()
можно использовать mount()
компонент, но это зависит от вашего варианта использования:
import React from "react";
import { mount } from "enzyme";
import NavBar from "./NavBar";
describe("NavBar component", () => {
it("Should render without errors.", () => {
const component = mount(<NavBar />);
// Use dive() to access inner components
const navbar = component.find('[data-test="nav-bar"]');
// Test that we found a single element by targeting length property
expect(navbar.length).toBe(1);
});
});
Надеюсь, это поможет!