Я сам управляю довольно большим приложением (50 000+ строк кода), и оно управляет некоторыми довольно важными бизнес-действиями. Чтобы описать простую программу, я бы сказал, что это модный пользовательский интерфейс с возможностью отображения и изменения данных из базы данных, и он управляет около 1000 единиц аренды, а также около 3 тысяч арендаторов и всеми финансами.
Когда я делаю изменения, потому что это очень большая база кода, я иногда что-то ломаю в другом месте. Обычно я проверяю это, выполняя все то, что я изменил на функциональном уровне (то есть я запускаю программу и работаю через пользовательский интерфейс), но я не могу протестировать для каждой ситуации. Вот почему я хочу начать с модульного тестирования.
Однако это не настоящая трехуровневая программа с уровнем базы данных, уровнем бизнеса и уровнем пользовательского интерфейса. Большая часть бизнес-логики выполняется в классах пользовательского интерфейса, а многое делается для событий. Все усложняется тем, что все зависит от базы данных, и я пока не видел хороших предложений о том, как проводить модульное тестирование взаимодействия с базой данных.
Как было бы хорошим способом начать модульное тестирование для этого приложения. Иметь ввиду. Я никогда не делал модульное тестирование или TDD раньше. Должен ли я переписать его, чтобы удалить бизнес-логику из классов пользовательского интерфейса (много работы)? Или есть лучший способ?