В 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()
имеет значения по умолчанию). Поскольку любой параметр не по умолчанию (более точный: любой параметр!= По умолчанию один, который мы еще не знаем и который, возможно, может измениться независимо) в этом случае приводит к фатальным последствиям.