containsAllMatchingElements
работает, определяя «выглядит ли элемент в обертке как« переданные элементы », проверяя, присутствуют ли все реквизиты ожидаемого элемента».
Один из перечисленных «общих ошибок»в нижней части документа стоит «иметь в виду, что этот метод определяет сопоставление на основе сопоставления также и дочерних узлов».
Глядя на исходный код, сравнение выполняется функцией internalNodeCompare
, который сравнивает реквизиты здесь и потомков здесь .
В приведенном выше тесте containsAllMatchingElements
передается <MenuItem />
, что вызывает егоискать MenuItem
без подпорок и дочерних элементов, который не работает, поскольку оба элемента MenuItem
в оболочке имеют дочерние элементы.
Тест проходит, если он модифицирован для включения дочерних элементов MenuItem
:
expect(wrapper.containsAllMatchingElements([<MenuItem>foo</MenuItem>, <MenuItem>bar</MenuItem>])).toBeTruthy(); // SUCCESS