У меня есть объект, над которым я издеваюсь с помощью JMockit NonStrictExcpection()
в методе @Before
/setUp()
моего тестового класса, чтобы он возвращал значение, ожидаемое для нормального выполнения моего тестируемого класса.
Это нормально для всех моих методов тестирования, за исключением одного теста, в котором я хочу проверить ненормальную работу этого кода.
Я попытался создать новое ожидание в тестовом методе, который, как я полагал, переопределит ожидание в методе setUp, но обнаружил, что ожидание в методе setUp подавляет новое ожидание.
Когда я удаляю ожидание setUp, тестовый метод ведет себя так, как ожидалось (но все мои другие тесты, естественно, терпят неудачу).
Как мне запрограммировать свой тестовый класс, чтобы правильно определить ожидания для каждого теста с минимальным объемом кода? (я знаю, что могу скопировать/вставить код ожидания в каждый метод тестирования, < em>но я не хочу этого делать, если вообще этого можно избежать).
Мой тестовый код выглядит примерно так (обратите внимание, это вроде псевдокода и не компилируется, но вы поняли идею):
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...
}
}