У меня есть адаптер, который имеет метод, содержащий переменный список аргументов и пересылающий его методу, который принимает те же аргументы в используемой структуре. Я хочу проверить, что мой адаптер правильно перенаправляет аргументы. Однако я не хочу, чтобы мой тест знал о каких аргументах поддерживает фреймворк.Ожидающий переменный список аргументов в PHPUnit
У меня есть рабочий рассчитывает следующий образом:
$context->expects($this->once())
->method('msg')
->with(
$this->equalTo($someMessageArguments[0]),
$this->equalTo($someMessageArguments[1]),
$this->equalTo($someMessageArguments[2])
);
Это явно не хорошо, как это предполагает длину переменного списка 3. Я хочу использовать поставщик данных и тест с различными длинами, а также , и в этом случае этот код не будет его обрезать.
Есть ли разумный способ сделать это с помощью PHPUnit API? Я взломал эту игру, которая также работает, хотя, кажется, довольно зло, а также:
$invocationMocker = $context->expects($this->once())
->method('msg');
$invocationMocker->getMatcher()->parametersMatcher
= new PHPUnit_Framework_MockObject_Matcher_Parameters($someMessageArguments);
В случае нет никакого способа сделать это красиво с помощью PHPUnit API, есть подход, который лучше, чем два, перечисленных здесь ?