2015-08-18 3 views
1

У нас есть проект с> 80% охватом тестирования, но качество кода по-прежнему является проблемой. Некоторые изменения приведут к появлению новых ошибок при тестировании, чтобы покрыть логику. Каковы лучшие правила написания тестовых примеров JUnit?Лучшие правила для написания тестовых примеров JUnit

+0

простое правило, когда вы также реорганизуете методы тестирования рефакторинга кода! – Sridhar

ответ

1
  • наводка первый: при разработке нового кода, начать делать это в модульном тесте
  • Не начинайте с пограничными случаями, нулевых тесты
  • Сделать стабильные тесты, которые не будут легко порвали с изменениями исходных
  • для сценариев с бизнес-данными, последовательности, делают функции подсказки
  • Ловля ошибок регрессии, слабость в использовании кода является основной целью
  • Новый код часто заслуживает быть переработан, переписан, когда некоторые дополнительные функциональность кристаллизуется. Единичный тест не должен быть лордоном и должен быть полностью переписан

Некоторое усилие может пойти лучше на протестированный код. 100% -ное покрытие также подразумевает, что многие усилия пошли на тестовый код и его обслуживание.

Однако, если единичный тест источника громоздкий, реорганизуйте исходный код, разделив обязанности. Это можно сделать уродливым, используя наследование для разделения различных аспектов.

Положитесь на findbugs/coverty, selenium и другие.

+0

Чтобы добавить, что сказал @Joop, убедитесь, что вы обрабатываете юниты как код и сохраняете его в чистоте. –

0

Вы сказали: «Некоторые изменения приведут к появлению новых ошибок при тестировании, чтобы покрыть логику». Мой вопрос в том, какие ошибки введены? Являются ли эти функциональные ошибки отсутствием функциональности или функциональности, которая работает не так, как ожидалось, даже несмотря на то, что там есть код и модуль. Тогда я бы сказал, что вам нужно сделать некоторое сопоставление требований. Junits не только полезны для покрытия «письменного кода», но также следует учитывать требования/сценарии, и для каждого сценария должен быть по крайней мере один единичный тест. Каждый раз, когда происходит изменение функциональности, убедитесь, что вы сначала обновили/добавили Junit (поэтому он начнет сбой), затем обновите/добавьте/удалите код. Итак, неудачный Junit теперь начинает проходить.