phpUnit - assertQuery не работает с - PullRequest
2 голосов
/ 01 марта 2011

У меня проблемы с assertQuery (). В html у меня (проверено выводом тела)

<input type="text" name="LASTNAME" id="LASTNAME" value="" maxlength="25" size="20" />

Итак, я написал запрос для проверки, чтобы убедиться, что этот элемент существует и что значение пусто

    $this->assertQuery('input#LASTNAME[value=""]', 1);

PhpUnit говорит, что утверждение не выполнено

Неудачный узел подтверждения DENOTED BY input # LASTNAME [value = ""] EXISTS

Можете ли вы дать мне некоторое представление о том, почему это утверждение не выполняется и как правильно его написать?

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 01 марта 2011

Код Zend Framework, который преобразует селектор CSS в запрос XPath, не работает.Он не добавляет обязательные @ перед именем атрибута.Используйте это, хотя и неправильное CSS, утверждение:

$this->assertQuery('input#LASTNAME[@value=""]', 1);

Подробнее см. эту ветку форума .

Обновление: сообщается о проблеме и исправлено в выпуске 1.10 , поэтому вы можете обновить Zend Framework в качестве альтернативы использованию некорректного селектора CSS.

1 голос
/ 01 марта 2011

Кроме того, вы можете использовать XPath вместо CSS селекторов и, таким образом, пропустить преобразование CSS в XPath, выполняемое Zend_Dom_Query:

$this->assertXpath( '//input[@id="LASTNAME"][@value=""]' );
...