При выполнении модульного тестирования следует избегать доступа к внешним ресурсам , таким как базы данных, файловые системы, сеть и т. Д. Это позволяет хранить тесты в памяти (быстро), но также изолированно от внешних сбоев.Вы хотите протестировать только определенную часть некоторых функций, например, в классе, и ничего больше.
Для вас это означает, что переменную conn
(я полагаю, это соединение БД) необходимо отключить.,Вы можете сделать это легко с помощью чего-то вроде внедрение зависимостей , что означает, что вы передаете вещи в свой класс при его создании.В этом случае вы должны передать интерфейс, который имеет необходимые функции, используемые conn
.
Затем в производстве вы передаете реальный объект соединения БД, в то время как в тесте вы передаете имит, которым вы управляете.Следовательно, вы можете проверить, что ABC
вызывает и делает ли то, что вы ожидаете, с conn
.То же самое касается pre
, который вы используете.
Вы можете видеть это так: я хотел бы протестировать класс ABC
, и для этого мне нужно увидеть, как он использует pre
и conn
, поэтому я заменяю их своими собственными тестовыми реализациями, которые я могу проверить после выполнения чего-либо с помощью ABC
.
Чтобы конкретно помочь вам в том, что вы делаете, вам нужно показать, что pre
и скажите нам, что вы собираетесь проверить.