Предположим, что у меня есть класс с двумя методами, где мне все равно, что называется...
public class Foo {
public String getProperty(String key) {
return getProperty(key, null);
}
public String getProperty(String key, String defaultValue) {
//...
}
}
Оба ниже (из другого класса, все еще в моем приложении) должны пройти мой тест:
public void thisShouldPass(String key) {
// ...
String theValue = foo.getProperty(key, "blah");
// ...
}
public void thisShouldAlsoPass(String key) {
// ...
String theValue = foo.getProperty(key);
if (theValue == null) {
theValue = "blah";
}
// ...
}
Мне все равно, что было вызвано, я просто хочу, чтобы один из двух вариантов был вызван.
В Mockito я могу вообще делать такие вещи:
Mockito.verify(foo, atLeastOnce()).getProperty(anyString());
Или:
Mockito.verify(foo, atLeastOnce()).getProperty(anyString(), anyString());
Есть ли собственный способ сказать: "Проверить один или другой, по крайней мере, один раз"?
Или мне нужно сделать что-то столь же грубое, как:
try {
Mockito.verify(foo, atLeastOnce()).getProperty(anyString());
} catch (AssertionError e) {
Mockito.verify(foo, atLeastOnce()).getProperty(anyString(), anyString());
}