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