Я пишу модульный тест для метода, использующего 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() должен быть числовым
Есть ли способ сделать логическую или
имитацию для метода с более чем один аргумент?
Заранее спасибо.