Утверждайте, что 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?

Author: Kzqai, 2014-03-14

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");

Смотрите руководство

 27
Author: vascowhite, 2016-08-11 14:31:49