J'ai une méthode qui est appelée plusieurs fois avec différents paramètres dans le cadre d'une méthode plus large.
$query->where("one", $id); $query->where("two", "LIKE %{$name}%"); $query->where("three", false); $query->where("four", true);
J'utilise PHPUnit 10 et je souhaite écrire un test unitaire pour cette méthode spécifique. Je veux vérifier si la méthode where
est appelée 4 fois avec certains paramètres spécifiques.
Par exemple :
$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);
Le ->will
ci-dessus ne fonctionne pas pour spécifier différents paramètres pour des appels successifs à la même méthode (ou du moins je n'ai pas pu le faire fonctionner).
J'ai essayé d'utiliser la documentation mais je ne sais pas exactement quoi rechercher, donc c'est difficile à trouver.
Je vais répondre à ma propre question car j'ai dû creuser un peu.
Pour PHPUnit 10, la méthode
withConsecutive
(c'est ce que je recherche, je ne savais tout simplement pas qu'elle s'appelait ainsi) a été supprimée. Aucun remplacement officiel n'existe.Ce problème a été posé sur le référentiel PHPUnit
La solution que j'ai utilisée est