Фон
Я пытаюсь протестировать этот метод в классе с помощью Mockito:
Первый случай метода - когда строка равна константе.
Второй случай метода - когда строка равна чему-либо еще , за исключением константы.
Это строковая версия этого вопроса о всем, кроме определенного целого числа .
public class Class {
private SomeOtherObjectWithAMethod someOtherObjectWithAMethod;
public Class(SomeOtherObjectWithAMethod someOtherObjectWithAMethod){
this.someOtherObjectWithAMethod = someOtherObjectWithAMethod;
}
public void method(){
if(helperObject.obtainAString().equals(HelperObject.A_STRING_CONSTANT)){
someOtherObjectWithAMethod.thisMethod("stringarg");
}
else{
someOtherObjectWithAMethod.thisMethod("differentarg");
}
}
Я знаю, что в Мокито вы можете
Изменить некоторые возвращаемые значения в mockito (но будет влиять только последнее) в соответствии с durron597
Введите null
в методе thenReturn()
как средство возврата ничего.
- Используйте
anyString()
в качестве фиктивной строки.
- Возвращает логическое значение.
Частичное решение
Я уже тестировал первый случай (str.equals("This string"))
, как написано ниже:
private Class instantiatedClass;
@Test
public void testMethod_thisString(){
whenever(helperObject.obtainAString()).thenReturn(HelperObject.A_STRING_CONSTANT);
instantiatedClass.method()
verify(someOtherObjectWithAMethod).thisMethod("stringarg");
}
Я собираюсь написать другой метод теста, подобный этому. Ниже я прокомментировал ту часть, в которой мне нужна помощь:
@Test
public void testMethod_notThisString(){
whenever(helperObject.obtainAString()).thenReturn(/* A String that is not HelperObject.A_STRING_CONSTANT */);
instantiatedClass.method()
verify(someOtherObjectWithAMethod).thisMethod("differentarg");
}
Вопрос
Как проверить любую строку , кроме для определенного значения (или значений)?