From php.net/assert:
Assertions should be used as a debugging feature only. You may use them for sanity-checks that test for conditions that should always be TRUE and that indicate some programming errors if not or to check for the presence of certain features like extension functions or certain system limits and features.
Assertions should not be used for normal runtime operations like input parameter checks. As a rule of thumb your code should always be able to work correctly if assertion checking is not activated.
So for normal code logic, use a boolean or some pre-defined constants. For exceptional logic use normal if statements and throw an Exception for invalid input.
If you are really keen on keeping the asserts, you could define an assert callback which throws an Exception you can catch in PHPUnit.
// PHP 5.3 Anonymous function as callback
// code is untested
assert_options(ASSERT_CALLBACK, function($file, $line, $code) {
throw new Exception('Assert failed in $file on line $line');
});
assert_options(ASSERT_ACTIVE, 0);?