Я несколько новичок в TDD и JUnit, я знаю, что могу написать тестовые примеры для методов, которые я реализую в своем коде.Есть ли способ отслеживать каждое утверждение тестового примера с несколькими утверждениями в JUnit?
И, очевидно, в моем коде есть методы, которым необходимо проверить несколько угловых случаев, чтобы проверить, что реализация метода в порядке. Поскольку, как правило, хорошая практика заключается в том, что один метод тестирования поддерживается одним методом в коде, я должен добавить несколько утверждений для такого метода, как описано в этом ответе. https://stackoverflow.com/a/762582/5715934
public void testValueOf() {
assertEquals(1, Integer.valueOf("1").intValue());
assertEquals(0, Integer.valueOf("0").intValue());
assertEquals(-1, Integer.valueOf("-1").intValue());
assertEquals(Integer.MAX_VALUE, Integer.valueOf("2147483647").intValue());
assertEquals(Integer.MIN_VALUE, Integer.valueOf("-2147483648").intValue());
....
}
Но когда я выполнения тестового примера, я не получаю состояние теста (годен/не годен) для каждого утверждения внутри метода испытаний. Вместо этого он показывает «красный», даже если одно утверждение не работает и зеленое, если все переданы.
Не проще ли отслеживать каждое утверждение, чтобы облегчить отладку? И есть ли формальный способ/инструмент/обходной путь для этого (JUnit 4)?
Это * Плохая Практика *, чтобы иметь один тест на один метод. У вас должен быть отдельный тест для разных тестовых случаев. –
Как поясняется в этом ответе, даже внутри одного метода тестирования существуют разные случаи (каждый как другое утверждение). –
@krzyk прав. Отделите все свои тестовые примеры, чтобы вы могли узнать, с кем не удается и по какой причине. Это значительно облегчает объяснение причин неудачи ваших тестов. Они также должны быть независимы друг от друга, чтобы гарантировать, что ни один тестовый пример не может привести к сбою другого. – Dale