Я хотел бы использовать функцию PHP 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 () из своей среды тестирования?