я
Следуя обоим примерам Enzyme для .найти() и этому примеру GitHub фермент-пример-шутка, чтобы получить базовый компонент для тестирования и проверки существования самого внешнего элемента className, я не понимаю, почему это не проходит:
// КОМПОНЕНТ РЕАГИРОВАНИЯ
class VisitorShortcut extends Component {
//all the props & lifecycle hooks here
render() {
return (
<div className = "visitor-shortcuts"> // <-- this className is being tested
<div
onClick = {e => e.stopPropagation()}
className = "dropdown open"
>
<ul
style = {style}
ref = "shortcutContainer"
className = {"dropdown-menu "}
>
{results}
</ul>
</div>
</div>
);
}
}
// ТЕСТОВЫЙ ФАЙЛ
import React from "react";
import { shallow, mount } from "enzyme";
import VisitorShortcut from "../VisitorShortcut";
describe("Shortcuts", () => {
test("The main Class exists", () => {
expect(
(<VisitorShortcut />).find(".visitor-shortcuts").length
).toBe(1);
});
});
// ВЫХОД
Expected value to be (using ===):
1
Received:
0
если я переключаюсь на expect(wrapper.find('div.some-class')).to.have.length(3); в соответствии с документацией Enzyme, вывод будет TypeError: Cannot read property 'have' of undefined
Я совершенно уверен, что мне не нужно использовать API mount вместо shallow.
Спасибо, что помогли прояснить это. Это кажется таким простым ...





Приведенный ниже код работал у меня
import React from "react";
import { shallow, mount } from "enzyme";
import { assert } from 'chai';
import VisitorShortcut from "../VisitorShortcut";
describe("Shortcuts", () => {
test("The main Class exists", () => {
const wrapper = shallow(<VisitorShortcut />);
const visitorShortcutsWrapper = wrapper.find('.visitor-shortcuts');
assert.equal(visitorShortcutsWrapper.length, 1);
});
});
Кстати, я использую assert из пакета chai.
Это работает для проверки наличия двух подэлементов элемента в Jest.
expect(wrapper.find('.parent-class').getElements().length).toEqual(2)
в соответствии с документом Enzyme вы можете сделать следующее:
const wrapper = shallow(<VisitorShortcut />);
expect(wrapper.find("div.visitor-shortcuts").length).toBe(1)
Когда у меня
console.info(wrapper.find(".visitor-shortcuts"));длина = 0