Я не совсем уверен, соответствует ли этот вопрос стандартам SO, но...
Я имею опыт использования JUnit для тестирования Java-приложения вместе с насмешкой и т.д. Но есть одна вещь, о которой я согласен - Как убедиться, что каждый класс и каждый метод действительно протестированы?
Я нашел то, что похоже на то, что я хочу достичь - GrandTestAuto (вдохновение пришло на странице инструментов тестирования), можете ли вы порекомендовать другой (лучший) подход?
Я должен проверить его (GTA) больше, меня интересует Spring, Mocking, Maven, чтобы работать вместе, но я немного скептически настроен.
Я также использую отчеты о покрытиях (JCoverage, JaCoCo), но это неточно, потому что когда вы тестируете метод a()
который вызывает b()
оба они покрываются, но в качестве разработчика я хочу написать тесты для b()
.
редактировать:
Я нашел отчет JUCA, мне тоже нужно проверить это.
edit2:
Хорошо, идея о a()
вызовах b()
должна быть больше.
Смотрите пример
void a() {
b( "test" );
}
void b( String s ) {
Assert.notNull( s );
// ...
}
когда a()
покрывается, также покрывается b(), но случай, когда s равен null, не является, и это часто происходит, потому что b()
вообще не проверяется.
Я думаю, что покрытие кода - довольно хороший способ узнать, что полностью непроверено, но это не намного больше.
Я предлагаю две вещи: