.matchesElement(patternNode) => Boolean
Возвращает значение true или false, в зависимости от того, соответствует ли заданный реакт-элемент 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 = mount(<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() => ReactWrapper- ищет все узлы в обертке и ищет их на всей глубине
© 2015 Airbnb, Inc.
Licensed under the MIT License.
https://enzymejs.github.io/enzyme/docs/api/ReactWrapper/matchesElement.html