Технически тестовете, които говорят с база данни (nosql или по друг начин), не са единични тестове, тъй като тестовете тестват взаимодействията с външна система, а не просто тестват изолирана единица код. Въпреки това тестовете, които разговарят с база данни, често са изключително полезни и често са достатъчно бързи, за да се изпълняват с другите тестове за модули.
Обикновено имам интерфейс на услугата (напр. UserService), който капсулира цялата логика за работа с базата данни. Кодът, който разчита на UserService, може да използва макетна версия на UserService и лесно се тества.
Когато тествате внедряването на услугата, която говори с Mongo, (напр. MongoUserService), най-лесно е да напишете някакъв java код, който да стартира/спира процес на mongo на локалната машина и да накара вашата MongoUserService да се свърже с това, вижте този въпрос за някои бележки.
Можете да опитате да се подиграете с функционалността на базата данни, докато тествате MongoUserService, но като цяло това е твърде податливо на грешки и не тества това, което наистина искате да тествате, което е взаимодействие с реална база данни. Така че, когато пишете тестове за MongoUserService, вие настройвате състояние на базата данни за всеки тест. Вижте DbUnit за пример за рамка за това с база данни.