У меня есть следующий класс, который мне нужен для написания модульных тестов. Мне нужно проверить собственные вызовы MyClass
.JMockit: проверить самоиспользуемые вызовы тестируемого объекта
public class MyClass {
public void init() {
}
public void testMethod() {
}
}
Я написал следующий тестовый класс для тестирования MyClass
public class MyClassTest {
@Tested
MyClass myClass;
@Test
public void initTest() {
// new Expectations(myClass) {{
// }};
myClass.init();
new Verifications() {{
myClass.testMethod();
}};
}
}
Как можно видеть, init()
не вызывает testMethod()
, но мое удивление, выше тест успешно.
Если я частично высмеиваю myClass
, раскомментировав пустой Expectations
блок выше, сбой теста с Missing invocation
ошибкой. Поэтому мне кажется, что я должен частично издеваться над тестируемым объектом.
Но, частично издеваясь над тестовым объектом сложного класса, выдается множество исключений при тестировании, которое очень сложно отлаживать, поскольку точки останова в Intellij IDEA в этой ситуации не работают.
Итак, что здесь может быть не так? Или, не предполагается ли проверять вызовы методов в самом тестируемом объекте?
Теперь, если вы можете привести примеры «частичного издевательства тестового объекта сложного класса, бросающего [различные] исключения при тестировании», это было бы интересно посмотреть, потому что это не было моим опытом. – dcsohl