Tekniske tests, der taler til en database (nosql eller andet), er ikke enhedstests, da testene tester interaktioner med et eksternt system, og ikke kun tester en isoleret kodeenhed. Men test, der taler til en database, er ofte ekstremt nyttige og er ofte hurtige nok til at køre med de andre enhedstests.
Normalt har jeg en Service-grænseflade (f.eks. UserService), som indkapsler al logikken til at håndtere databasen. Kode, der er afhængig af UserService, kan bruge en hånet version af UserService og er let testet.
Når du tester implementeringen af tjenesten, der taler til Mongo, (f.eks. MongoUserService) er det nemmest at skrive noget java-kode, der vil starte/stoppe en mongo-proces på den lokale maskine, og få din MongoUserService til at forbinde til det, se dette spørgsmål for nogle noter.
Du kan prøve at håne databasens funktionalitet, mens du tester MongoUserService, men generelt er det for fejludsat og tester ikke det, du virkelig vil teste, som er interaktion med en rigtig database. Så når du skriver test til MongoUserService, opsætter du en databasetilstand for hver test. Se på DbUnit for et eksempel på en ramme til at gøre det med en database.