Да, вывод assertTag () воняет.
Я бы порекомендовал разбить это на несколько утверждений и / или тестов. Я думаю, что причина того, что вы получаете ошибку, в том, что она запуталась в строке 'count' => 4
.
Хорошая техника, которую я нашел, - это постепенное создание массива $matcher
, и когда вы получаете ошибку, это проблема. И наоборот, вы можете написать все это, затем закомментировать все это и постепенно удалять комментарии.
Когда эта конкретная строка закомментирована, утверждение успешно выполняется. Когда это не комментируется, я получаю ту же ошибку, что и вы.
Вот странная часть: если вы введете значение другое , отличное от 4, например 5, вы получите другую ошибку:
Invalid argument supplied for foreach()
Я думаю, что это может сбить с толку, потому что вы считаете детей (внуков, если хотите), когда число детей равно > 1. Я пытался использовать значение "8", потому что технически Ваш HTML содержит 8 td, которые являются дочерними элементами tr, но это показало ошибку foreach ().
Предложения:
Разбейте на несколько утверждений и / или тестов. Возможно, отдельное утверждение на основе регулярных выражений для подтверждения подсчета различных элементов и иерархии?
Совет, больше, чем предложение: делать не нужно
'attributes' => array('id' => 'peopleLarge'),
Вместо этого вы можете просто сделать:
'id' => 'peopleLarge',
(ID сам по себе является критерием для assertTag ())