Вы можете использовать обратный вызов, чтобы сделать несколько утверждений.
$this->stubDispatcher->expects($this->once())
->method('send')
->will($this->returnCallback(function($class, $array) {
self::assertEquals('className', $class);
self::assertArrayHasKey('foo', $array);
self::assertArrayHasKey('bar', $array);
}));
Редактировать: И если вы хотите сделать базовые утверждения о некоторых параметрах и более сложные утверждения о других, выможно добавить with()
.
$this->stubDispatcher->expects($this->once())
->method('send')
->with('className', $this->anything())
->will($this->returnCallback(function($class, $array) {
self::assertArrayHasKey('foo', $array);
self::assertArrayHasKey('bar', $array);
}));
Чтобы быть супер ясным, вы никогда не должны передавать $this->returnCallback()
в with()
.То же самое для returnValue()
и throwException()
.Это все директивы, которые говорят макету, что делать при вызове метода.with()
для сообщения макету, какие параметры он должен принимать.