Я хотел бы использовать функцию утверждения PHP в своей инфраструктуре модульного тестирования. Преимущество заключается в возможности видеть выражение, которое оценивается (включая комментарии) в сообщении об ошибке.
Проблема заключается в том, что каждый метод, содержащий тесты, может иметь более одного утверждения assert, и я хотел бы отслеживать, сколько фактических утверждений assert было выполнено. assert не дает мне способ подсчитать, сколько раз он был запущен, только сколько раз он потерпел неудачу (в рамках обратного вызова отказа).
Я попытался отвлечь оператор assert в функции, чтобы добавить механизм подсчета.
private function assertTrue($expression) {
$this->testCount++;
assert($expression);
}
Это не работает, потому что любые переменные в выражении теперь выходят за рамки.
$var = true;
$this->assertTrue('$var == true'); // fails
Любые советы о том, как я могу использовать assert в своем модульном тестировании, имея возможность подсчитать количество фактических тестов?
Две идеи, которые я придумал, - это заставить пользователей считать себя
$this->testCount++;
assert('$foo');
$this->testCount++;
assert('$bar');
или заставить пользователей ставить только одно утверждение в каждом тестовом методе (тогда я мог бы подсчитать количество запущенных методов). но ни одно из этих решений не является очень эффективным и затрудняет кодирование. Любые идеи о том, как это сделать? Или я должен просто удалить assert() из моей тестовой среды?