Как PHPUnit проверить метод без возвращаемого значения?
Я пытаюсь протестировать методы из следующего класса, который я написал (есть больше функций, чем показано, в основном, одна функция для каждого - это метод _ * ()):
class Validate {
private static $initialized = false;
/**
* Construct won't be called inside this class and is uncallable from the outside. This prevents
* instantiating this class. This is by purpose, because we want a static class.
*/
private function __construct() {}
/**
* If needed, allows the class to initialize itself
*/
private static function initialize()
{
if(self::$initialized) {
return;
} else {
self::$initialized = true;
//Set any other class static variables here
}
}
...
public static function isString($string) {
self::initialize();
if(!is_string($string)) throw new InvalidArgumentException('Expected a string but found ' . gettype($string));
}
...
}
Когда я проверяю, если методы выдают исключение при неверном вводе, это прекрасно работает! Однако, когда я проверяю, работает ли метод должным образом, PHPUnit жалуется, потому что у меня нет подтверждения в тесте. Конкретная ошибка:
# RISKY This test did not perform any assertions
Тем не менее, я не имею никакой силы утверждать, поэтому я не уверен, как это преодолеть.
Я читал кое-что о тестировании статических методов, но в основном это касается зависимости между статическими методами. Кроме того, даже нестатические методы не могут иметь возвращаемого значения, как это исправить?
Для справки мой тестовый код:
class ValidateTest extends PHPUnit_Framework_TestCase {
/**
* @covers ../data/objects/Validate::isString
* @expectedException InvalidArgumentException
*/
public function testIsStringThrowsExceptionArgumentInvalid() {
Validate::isString(NULL);
}
/**
* @covers ../data/objects/Validate::isString
*/
public function testIsStringNoExceptionArgumentValid() {
Validate::isString("I am a string.");
}
}