Утверждайте, что var - это непустая строка без определенных символов в phpunit
Я хочу утверждать, что переменная является (непустой) строкой в phpunit, но я не хочу утверждать, что строка должна соответствовать какой-либо точной строке.
Например, я хочу получить имя пользователя и убедиться, что я успешно получил какое-то незаполненное имя пользователя, но мне все равно, какое именно имя пользователя я получил.
Я могу довольно легко утверждать, что это непустая переменная, или что это строка, точно соответствующая некоторой строке, или утверждать, что var - это строка без phpunit справка:
$this->assertNotEmpty($username);
$this->assertSame('myusername', $username);
$this->assertTrue(is_string($username));
Все это близко к тому, что мне нужно, с использованием is_string, фактически проверяющего правильные условия, но выполнение is_string самостоятельно недостаточно хорошо, потому что, когда тест завершается неудачей, я больше не могу получить полезное, информативное сообщение, вместо того, чтобы сообщить мне, какой тип значения был фактически возвращен, сообщение об ошибке становится бесполезным:
Failed asserting that false is true.
Итак, как я могу утверждать, что var имеет строковый тип и не является пустым, используя систему утверждений phpunit?
1 answers
Вы можете добавлять свои собственные сообщения ко всем утверждениям PHPUnit, что-то вроде этого должно сработать для вас: -
$this->assertTrue(is_string($username), "Got a " . gettype($username) . " instead of a string");
В противном случае вы могли бы использовать
$this->assertInternalType('string', $username, "Got a " . gettype($username) . " instead of a string");