Я пишу unit test для метода с использованием PHPUnit. Метод, который я тестирую, вызывает вызов одного и того же метода на одном и том же объекте 3 раза, но с разными наборами аргументов. Мой вопрос похож на вопросы, заданные здесь и здесь
Вопросы, заданные в других сообщениях, связаны с издевательскими методами, которые принимают только один аргумент.
Однако мой метод принимает несколько аргументов, и мне нужно что-то вроде этого:
$mock->expects($this->exactly(3))
->method('MyMockedMethod')
->with($this->logicalOr($this->equalTo($arg1, $arg2, arg3....argNb),
$this->equalTo($arg1b, $arg2b, arg3b....argNb),
$this->equalTo($arg1c, $arg2c, arg3c....argNc)
))
Этот код не работает, потому что equalTo()
проверяет только один аргумент. Предоставление ему более одного аргумента вызывает исключение:
Аргумент № 2 PHPUnit_Framework_Constraint_IsEqual:: __ construct() должен быть числовым
Есть ли способ сделать logicalOr
mocking для метода с более чем одним аргументом?
Спасибо заранее.