Функция method
принимает как строку, так и класс Constraint
.Тест PHPUnit может создавать классы ограничений с такими служебными функциями, как isNull
, contains
или matches
.В этом примере anyMethodExcept
преобразуется в код, подобный следующему:
public function testSystemUnderTestOnlyInvokesFoo() {
$myMock = $this->createMock(ClassWithManyMethods::class);
$myMock->expects($this->never)
->method($this->logicalNot($this->matches('foo')));
$myMock->expects($this->once())->method('foo');
function_under_test($myMock);
}
Если у вас есть несколько методов, которые вы хотите исключить, используйте matchesRegex
, например:
$myMock->expects($this->never)
->method($this->logicalNot($this->matchesRegex('/foo|bar|baz/')));