Tak co ta naše věc? Proč bych mockoval databázi, kterou potřebuju otestovat? Ty prostě věříš jednotkovým testům a zbytek tě nezajímá?
Myslel jsem si, že se tomu chceš vyhnout.
Nejprve si musím rozmyslet, co chci otestovat:
- Chci otestovat databázi - napíši testy, které budou testovat databázi. Aplikace je mimo, ta s tím nemá nic společného.
- Chci otestovat modul aplikace - namockuji databázi a testuji aplikaci. Databáze je mimo, tu k tomu nepotřebuji.
Jednotkové testy jsou základ. Teprve když projdou, má smysl pokračovat s dalšími typy testů. Teď integrační:
- Chci otestovat vazby mezi moduly aplikace - databázi k tomu nepotřebuji, mock je lepší.
- Chci otestovat vazbu mezi modulem aplikace a databází. Použiji testovací databázi a testuji modul.
Teď teprve nastupují systémové testy s kompletním buildem aplikace a s vhodně upravenou kopií skutečné databáze (anonymizace dat, sedmileté množství dat, shluky podobných dat,...)
Nakonec přijdou akceptační testy dle tvého vzoru.