Sto iniziando un nuovo progetto e sto provando molto duramente a usare TDD per guidare il progetto. Ho spinto per anni e finalmente ho ottenuto l'approvazione per dedicare del tempo extra a questo progetto per usarlo mentre imparo come farlo correttamente.
Questo è un nuovo modulo da collegare a un sistema esistente. Attualmente, tutti gli accessi ai dati avvengono tramite webservices, che per la maggior parte sono solo un wrapper sulle procedure memorizzate nel database.
Un requisito è che per un determinato negozio, restituisco tutti gli ordini di acquisto considerati validi per questa applicazione. Un PO è considerato valido se la data di spedizione cade entro un determinato intervallo dalla data di apertura dei negozi (questo è per i nuovi negozi).
Ora, non riesco a inserire questa logica nel codice dell'applicazione, poiché non riporterò un milione di PO solo per ottenere la dozzina a cui applicare potrebbe applicare a questo archivio dato il vincolo sopra.
Stavo pensando, potrei passare l'intervallo di date a un proc GetValidPOs e utilizzarlo per restituire gli OP validi. Ma cosa succede se aggiungiamo un altro requisito a ciò che è considerato un PO valido?
E come posso testarlo e verificare che continui a funzionare? Non stiamo usando un ORM ed è improbabile che accada. E non riesco a chiamare il DB nel mio test.
Sono bloccato.
L'altro mio pensiero, è avere alcune beffe che restituiscono dati validi, altre che restituiscono alcuni dati errati e che il repository locale genera un'eccezione se si verificano dati errati e verifica che l'eccezione venga generata se GetValidPOs proc restituisce dati non validi (o la finta usata nei test).
ha senso? O c'è un modo migliore?
AGGIORNAMENTO: Sono in grado di usare EF sembrerebbe. Ora ho solo bisogno di capire come usarlo e renderlo testabile, pur essendo in grado di fare affidamento su procedure memorizzate e la difficoltà di avere dati sparsi su più database.