Убедитесь, что метод макета вызывается без каких-либо переданных параметров (в phpunit)

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

13
задан zerkms 28 February 2012 в 03:23
поделиться