sql >> Databasteknik >  >> NoSQL >> MongoDB

Enhetstestning med MongoDB

Tekniskt sett är tester som talar till en databas (nosql eller annat) inte enhetstester, eftersom testerna testar interaktioner med ett externt system, och inte bara testar en isolerad kodenhet. Men tester som talar till en databas är ofta extremt användbara och är ofta tillräckligt snabba för att köras med de andra enhetstesten.

Vanligtvis har jag ett Service-gränssnitt (t.ex. UserService) som kapslar in all logik för att hantera databasen. Kod som är beroende av UserService kan använda en hånad version av UserService och är lätt att testa.

När du testar implementeringen av Tjänsten som pratar med Mongo (t.ex. MongoUserService) är det enklast att skriva någon Java-kod som startar/stoppar en mongo-process på den lokala maskinen, och låta din MongoUserService ansluta till den, se den här frågan för några anteckningar.

Du kan försöka håna databasens funktionalitet medan du testar MongoUserService, men i allmänhet är det för felbenäget och testar inte det du verkligen vill testa, vilket är interaktion med en riktig databas. Så när du skriver tester för MongoUserService ställer du in ett databastillstånd för varje test. Titta på DbUnit för ett exempel på ett ramverk för att göra det med en databas.



  1. vad är den genomsnittliga skillnaden mellan Nest och redis-namespace juveler när vi använder redis med rails/ruby

  2. Beräkna medianen i MongoDB-aggregationsramverket

  3. Jest och Redis (enhet testar problem med databascache)

  4. Hur man skapar, visar och släpper samlingar i MongoDB