Для модульного тестирования вы пытаетесь изолировать и протестировать определенные фрагменты кода. Вы делаете это, предоставляя входные данные, чтобы вы знали, каким должен быть ответ, если код работает правильно. Если вы проверяете, правильно ли функция возвращает логическое значение, то вам нужно предоставить входные данные, которые, как вы знаете, оценят как «ложные», а затем проверьте, действительно ли функция вернула «ложные». Вы также захотите написать тест, который должен быть оценен как «истинный». На самом деле, пишите столько тестов с любым количеством вводимых данных, сколько хотите, пока не убедитесь, что функция работает так, как ожидалось.
Кажется, что смешанные мнения, когда дело доходит до модульного тестирования с базой данных. Некоторые утверждают, что если вы используете базу данных, то выполняете интеграционное тестирование. В любом случае, для модульного теста вы должны знать, что представляет собой вход, и знать, каким должен быть ожидаемый ответ. Ваше объяснение того, что вы хотите протестировать, не соответствует тому, для чего на самом деле предназначен модульный тест. Однажды было бы предложено создать тестовую базу данных, которая всегда содержит одни и те же данные каждый раз, когда вы запускаете модульный тест. Таким образом, вы всегда будете знать, что такое ввод, и знаете, каким должен быть вывод. Этого можно достичь, создав базу данных в памяти, например Hypersonic.
Надеюсь, это поможет!