Technicky testy, které komunikují s databází (nosql nebo jinak), nejsou testy jednotek, protože testy testují interakce s externím systémem a ne pouze testování izolované jednotky kódu. Testy, které komunikují s databází, jsou však často extrémně užitečné a často jsou dostatečně rychlé, aby se spustily s ostatními testy jednotek.
Obvykle mám rozhraní služby (např. UserService), které zapouzdřuje veškerou logiku pro práci s databází. Kód, který se spoléhá na UserService, může používat simulovanou verzi UserService a lze jej snadno testovat.
Při testování implementace služby, která mluví s Mongo (např. MongoUserService), je nejjednodušší napsat nějaký java kód, který spustí/zastaví proces mongo na místním počítači, a nechat se k němu připojit vaše MongoUserService, viz tato otázka pro některé poznámky.
Můžete se pokusit zesměšnit funkčnost databáze při testování MongoUserService, ale obecně je to příliš náchylné k chybám a netestuje to, co skutečně chcete testovat, což je interakce se skutečnou databází. Při psaní testů pro MongoUserService tedy nastavíte stav databáze pro každý test. Podívejte se na DbUnit, kde najdete příklad rámce, jak to udělat s databází.