В phpunit мы можем указать, что метод был вызван с определенным
->with($this->equalTo('foobar'))
или любым
->with($this->anything())
параметром.
Но есть ли способ указать, что метод был вызван вообще без параметров?
Это тест, который я ожидаю провалить:
public function testZ()
{
$a = $this->getMock('q');
$a->expects($this->once())
->method('z')
->with(); // <--- what constraint to specify here?
$a->z(1);
}
UPD :
Вопрос имеет теоретический характер, так что у меня нет примера из реальной жизни. Вот какой случай, о котором я могу подумать прямо сейчас:
public function testMe($object)
{
$object->foo();
}
И давайте предположим, что testMe
должен (по дизайну и требованиям) всегда вызывать метод без параметров (при условии foo ()
имеет значения по умолчанию). Потому что любой параметр не по умолчанию (точнее: любой параметр! = Значение по умолчанию, которого мы еще не знаем и который, вероятно, мог измениться независимо) в этом случае приводит к фатальным последствиям.