Итак, я пытаюсь провести модульное тестирование класса в различных сценариях. Мы используем JUnit V 4.
У меня есть метод setUp, в котором я перезагружаю макет, чтобы вернуть ожидаемое значение макета. У меня есть 4 теста: test1-test4. test1, test2 отлично работают с ожидаемым фиктивным значением, настроенным в методе perTestSetup.
Для теста t3 требуется MockClass, чтобы генерировать исключение, поэтому я настраиваю его отдельно в t3. Теперь t3 работает нормально, поскольку макет генерирует исключение, как и ожидалось.
Но когда perTestSetup пытается сбросить макет, чтобы вернуть mockResult перед запуском test4, он терпит неудачу и выдает то же исключение времени выполнения, настроенное в t4. Я также пробовал reset (), прежде чем издеваться над perTestSetup (). Но и это тоже терпит неудачу.
Что мне здесь не хватает?
@Before
public void perTestSetup(){
when(MockClass.functionCall(...)).thenReturn(mockResult);
}
@Test
public void test1(){
}
@Test
public void test2(){
}
@Test
public void test3(){
when(MockClass.functionCall(...)).thenThrow(new RuntimeExcption());
...
}
@Test
public void test4(){
}