Если вам нужно протестировать вызов (в отличие от только его эффектов, вы можете просто ввести фабричный метод в тестируемом классе.
Class A {
private Function<String,Country> createCountry = Country::new;
public void methodA(String zipcode) {
Country c= createCountry.apply(zipCode);
}
}
, который вы затем можете высмеять.
class ATest {
@InjectMocks A sut;
@Mock Function<String,Country> creator;
@Test public void testCountryCreated() {
String zipcode = "1234";
Country country = mock(Country.class);
when(creator.apply(zipcode)).thenReturn(country);
sut.methodA(zipcode);
verify(creator).apply(zipcode);
}
}