There is a method which has variable parameters:
class A {
public void setNames(String... names) {}
}
Now I want to mock it with mockito
, and capture the names passed to it. But I can't find a way to capture any number of names passed, I can only get them like this:
ArgumentCaptor<String> captor1 = ArgumentCaptor.fromClass(String.class);
ArgumentCaptor<String> captor2 = ArgumentCaptor.fromClass(String.class);
A mock = Mockito.mock(A.class);
mock.setNames("Jeff", "Mike");
Mockito.verity(mock).setNames(captor1.capture(), captor2.capture());
String name1 = captor1.getValue(); // Jeff
String name2 = captor2.getValue(); // Mike
If I pass three names, it won't work, and I have to define a captor3
to capture the 3rd name.
How to fix it?