Mockito à l'aide de l'argument de rapprochement pour quand l'appel de la méthode avec un nombre variable d'arguments
Je suis d'essayer d'utiliser l'argument de rapprochement à l'intérieur d'un lors de l'appel à une méthode qui a un nombre variable d'arguments (les ...
chose en Java), sans succès. Mon code est ci-dessous et je vais aussi la liste de toutes les lignes que j'ai essayé d'utiliser pour faire ce travail.
import static org.mockito.Mockito.*;
public class MethodTest {
public String tripleDot(String... args) {
String sum = "";
for (String i : args) {
sum += i;
}
System.out.println(sum);
return sum;
}
public static void main(String[] args) {
try{
MethodTest mt = mock(MethodTest.class);
when(mt.tripleDot((String[])anyObject())).thenReturn("Hello world!");
System.out.println(mt.tripleDot(new String[]{"1","2"}));
}
catch (Exception e) {
System.out.println(e.getClass().toString() + ": " + e.getMessage());
}
}
}
Si l'impression de l'instruction est la suivante:
System.out.println(mt.tripleDot(new String[]{"1"}));
ou
System.out.println(mt.tripleDot("1"));
Il print "Hello world".
Mais si l'instruction print est:
System.out.println(mt.tripleDot(new String[]{"1","2"}));
ou
System.out.println(mt.tripleDot("1","2"));
Il affiche "null".
J'ai aussi essayé de faire des variations dans la lors des appels, comme anyObject()
ou anyString()
mais en vain. Je ne suis pas sûr si Mockito peut gérer à l'aide de l'argument de rapprochement en ce qui concerne les appels de méthode qui comprennent un nombre variable d'arguments. Est-il même possible? Si oui, que dois-je faire pour faire ce travail?
OriginalL'auteur Andrew | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
Essayer le
anyVararg()
matcher. Cela a été introduit dans 1.8.1.Ne vous inquiétez pas..il nous arrive à tous. C'est la façon dont nous apprenons. 😀
J'ai besoin d'une minute de plus à trouver la syntaxe correcte:
Matchers.<NeededType> anyVararg()
Le lien est mort.
OriginalL'auteur user1329572
Essayer
Mockito.anyVararg()
. Il devrait fonctionner.OriginalL'auteur John B