У меня есть объект, над которым я издеваюсь с помощью JMockit NonStrictExcpection()
в @Before
/setUp()
методе моего тестового класса, чтобы он возвращал значение, ожидаемое для нормального выполнения моего тестируемого класса.
Это нормально для всех моих тестовых методов, за исключением одного теста, в котором я хочу проверить ненормальную работу этого кода.
Я попробовал создать новое ожидание в тестовом методе, которое, как я полагал, переопределит ожидание в методе setUp, но обнаружил, что ожидание в методе setUp подавляет новое ожидание.
Когда я удаляю ожидание метода setUp, метод тестирования ведет себя как ожидалось (но все остальные мои тесты, естественно, не работают).
Как я должен написать свой тестовый класс, чтобы ожидания были правильно определены для каждого теста с минимальным количеством кода? (я знаю, что могу скопировать/вставить код ожиданий в каждый метод теста, но я не хочу этого делать, если это вообще возможно).
Мой тестовый код выглядит примерно так (обратите внимание, это своего рода псевдокод и не компилируется, но вы поняли идею):
public class TestClass{
@Before
public void setUp(){
// Here I define the normal behaviour of mockObject
new NonStrictExpectations() {{
mockObject.doSomething();
result = "Everyting is OK!";
}};
// Other set up stuff...
}
// Other Tests...
/**
* This method tests that an error when calling
* mockObject.doSomething() is handled correctly.
*/
@Test(expected=Exception.class)
public void testMockObjectThrowsException(){
// This Expectation is apparently ignored...
new NonStrictExpectations() {{
mockObject.doSomething();
result = "Something is wrong!";
}};
// Rest of test method...
}
}