.matchesElement(patternNode) => Boolean
Возвращает значение true или false, в зависимости от того, соответствует ли заданный элемент React patternNode дереву рендеринга обёртки. Он должен быть обёрткой с единственным узлом, и проверяется только корневой узел.
patternNode действует как символ подстановки. Для соответствия узла в обёртке:
- имена тегов должны совпадать
- содержимое должно совпадать: в текстовых узлах начальные и конечные пробелы игнорируются, но не пробелы внутри. Дочерние элементы должны совпадать в соответствии с этими правилами рекурсивно.
-
patternNodeатрибуты (свойства) должны присутствовать в узлах обёртки, но не наоборот. Их значения должны совпадать, если они присутствуют. -
patternNodeсвойства CSS-стилей должны присутствовать в стиле узла обёртки, но не наоборот. Их значения должны совпадать, если они присутствуют.
Аргументы
-
patternNode(ReactElement): узел, присутствие которого вы обнаруживаете в единственном узле обёртки.
Возвращает
Boolean: значение true или false, соответствует ли текущая обертка переданной.
Пример
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
// ...
}
render() {
return (
<button type="button" onClick={this.handleClick} className="foo bar">Hello</button>
);
}
}
const wrapper = shallow(<MyComponent />);
expect(wrapper.matchesElement(<button>Hello</button>)).to.equal(true);
expect(wrapper.matchesElement(<button className="foo bar">Hello</button>)).to.equal(true);
Общие ошибки
-
.matchesElement()ожидает ReactElement, а не селектор (как многие другие методы). Убедитесь, что при вызове вы используете ReactElement или выражение JSX. - Обратите внимание, что этот метод определяет соответствие на основе соответствия дочерних узлов узла.
Связанные методы
-
.containsMatchingElement() => ShallowWrapper- ищет все узлы в обёртке и ищет их на всей глубине
© 2015 Airbnb, Inc.
Licensed under the MIT License.
https://enzymejs.github.io/enzyme/docs/api/ShallowWrapper/matchesElement.html