PHPUnit: как смоделировать несколько вызовов методов с несколькими аргументами?

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

Есть ли способ сделать логическую илиимитацию для метода с более чем один аргумент?

Заранее спасибо.

50
задан Community 23 May 2017 в 00:31
поделиться