Как заменить сообщение об ошибке утверждения? Если я вызову $this->assertTrue(false, 'message')
, он отобразит как строку «сообщение», так и другое сообщение о том, что false неверно. Как мне получить только вывести сообщение, которое я выбрал? Возможно ли это?Как заменить сообщение утверждения phpunit?
ответ
Невозможно.
Зачем вам это нужно? Никогда не встречал случая, когда сообщение по умолчанию ничего не помогает. Пользовательское сообщение должно добавлять информацию, а не заменять значение по умолчанию.
Потому что, если я хочу определить пользовательское утверждение, я не могу обернуть существующий (например, assertThat), потому что он будет обрабатывать собственное сообщение. поскольку в конце концов все сводится к assertTrue, вы получаете такие сообщения, как «Не удалось утверждать, что X имеет свойство Y. Не удалось утверждать, что false истинно», что раздражает и не помогает. – Benubird
Это зависит от мнения каждого, но позвольте мне показать реальный пример: $ this-> assertNull ($ this-> router-> match ($ url), "URL '{$ url}' соответствует и не должен"); В этом примере я увижу нормальную ошибку, показывая мне, ЧТО было действительно возвращено, что полезно, и мое пользовательское сообщение об ошибке, которое помогает понять ПОЧЕМУ, что это не нормально. EDIT: это входит в пользовательское утверждение, называемое assertUrlDoesNotMatch ($ url) – gontrollez
Не будет ли сообщение ответа на утверждение для этого просто «Объект не соответствует ожидаемому NULL»? что не представляется целесообразным включить - ваш пример, по-видимому, является хорошим аргументом в том случае, если вы захотите проигнорировать сообщение по умолчанию. – Benubird
код-костыль, который приходит на ум, когда я столкнулся с той же проблемой:
public function assertTrue($condition, $message = '')
{
if (!$condition) $this->fail($message);
}
С PHPUnit 6 вы должны иметь получили одно утверждение, по крайней мере, так я предлагаю немного отредактированный @avolkov ответ:
public function assertTrue($condition, $message = '')
{
if (!$condition){
$this->fail($message); //This will cause test fail with your message
}
else{
$this->anything(); //This will eliminate error which says that your test doesn't have assertion
}
}
- 1. Как заменить методы на phpunit
- 2. phpunit заменить метод return
- 3. Почему PHPUnit игнорирует утверждения при ожидании исключения?
- 4. Как заменить PHP-класс на PHPUnit-заглушку?
- 5. Как использовать методы утверждения PHPUnit в функциональном тесте Codeception?
- 6. phpunit получить сообщение об ошибке
- 7. Можно ли использовать утверждения PHPUnit без расширения PHPUnit_Framework_TestCase?
- 8. KO утверждения в тестировании CRUD, от PHPUnit с Yii
- 9. Получить сообщение об ошибке утверждения NUnit
- 10. Как обнаружить версию PHPUnit
- 11. проверить сообщение facebook с selenium и phpunit
- 12. Тестирование множества значений, как заменить многие другие утверждения if?
- 13. Как мне заставить PHPUnit заменить класс в моем методе тестирования?
- 14. popToViewController вызывает сообщение об ошибке утверждения, как его решить?
- 15. Как выполнить PHPUnit?
- 16. Как добавить строку в сообщение об ошибке PHPUnit универсально
- 17. Как использовать PHPUnit setExpectedException()?
- 18. Как заменить стандартное сообщение об ошибке?
- 19. как заменить первое сообщение р: рычание primefaces
- 20. Как заменить сообщение об ошибке, отображаемое bash
- 21. Как сделать утверждения chaijs noop (отключить утверждения)
- 22. PHPMailer: заменить сообщение по умолчанию
- 23. PHPUnit - Почему PHPUnit работает в строгом режиме?
- 24. Ошибка при выполнении phpunit или phpunit --version
- 25. PHPUnit: что означает «Атрибут»?
- 26. Предполагается ли, что Groovy разрешает запятую отделять сообщение утверждения?
- 27. PHPUnit: отображение силы утвержденных значений
- 28. IronPython Сообщение об отправке служебной шины IronPython - ошибка утверждения
- 29. PHPUnit Исключение тестирования, сообщение об ошибке беспорядочно выводит результат
- 30. Как исправить ошибку утверждения lxml
Мне интересно, зачем вам это нужно. Возможно, вы используете один и тот же тип утверждения для всех проверок? 'Как assertTrue ($ a == $ b)'. – gontrollez
Поскольку до сих пор единственный способ определить пользовательское утверждение с помощью специального сообщения - написать класс, который расширяет PHPUnit_Framework_Constraint - что раздражает, когда я могу просто использовать одно из существующих ограничений путем предварительной обработки параметров. – Benubird