I have a method that is called multiple times with different parameters as part of a larger method.
$query->where("one", $id); $query->where("two", "LIKE %{$name}%"); $query->where("three", false); $query->where("four", true);
I'm using PHPUnit 10 and I want to write a unit test for this specific method. I want to check if the where
method is called 4 times with some specific parameters.
For example:
$mockedQuery->expects($this->exactly(4)) ->method("where") ->with( // Here I'd like to specify the list of arguments // or perhaps a map or something ) ->willReturn($mockedQuery);
->will
above doesn't work for specifying different parameters for successive calls to the same method (or at least I couldn't get it to work).
I've tried using the documentation but don't know what exactly to search for so it's hard to find.
I'll answer my own question because I had to do some digging.
With PHPUnit 10, the method
withConsecutive
(that's what I'm looking for, I just didn't know it was called this) has been removed. No official replacement exists.This issue was asked on the PHPUnit repository
The solution I used is