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