Я пытаюсь использовать аргументы аргументов внутри вызова при вызове метода, который имеет переменное количество аргументов (...
вещь на Java) без успеха. Мой код ниже, и я также перечислил все строки, которые я пытался использовать, чтобы сделать эту работу.Mockito использование аргументов для вызова при вызове метода с переменным числом аргументов
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());
}
}
}
Если оператор печати является:
System.out.println(mt.tripleDot(new String[]{"1"}));
или
System.out.println(mt.tripleDot("1"));
Он будет печатать "Привет мир".
Но если оператор печати:
System.out.println(mt.tripleDot(new String[]{"1","2"}));
или
System.out.println(mt.tripleDot("1","2"));
Он будет печатать "нуль".
Я также пробовал делать изменения во время вызова, такие как anyObject()
или anyString()
, но безрезультатно. Я не уверен, может ли Mockito обрабатывать использование аргументов аргументов в отношении вызовов методов, которые включают переменное количество аргументов. Возможно ли это? Если да, то что я должен делать, чтобы сделать эту работу?
Я чувствую себя таким смущенным прямо сейчас. Спасибо за указание на это. – Andrew
@ Андрей, Не волнуйся .. это происходит со всеми нами. Вот как мы учимся. : D – user1329572
Мне понадобилась дополнительная минута, чтобы найти правильный синтаксис: 'Matchers. anyVararg() ' –
jan