Domanda

Ho appena iniziato a utilizzare ASP.NET MVC e TDD. Ho letto che durante i test delle unità dovresti concentrarti sul test del tuo codice, non su altri sistemi, come il DB. Tuttavia, cosa succede quando la funzionalità essenziale risiede nel DB?

Ho usato la serie Storefront MVC come guida iniziale su come impostare i miei progetti e modelli. Poiché la ricerca full-text è essenziale, l'ho impostato come funzione nel mio repository

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

Ora, la logica di questa ricerca richiede una funzione con valori di tabella con testo completo e alcune altre funzioni nel database. La logica di queste funzioni è impossibile da ottenere esattamente corretta nel finto archivio. Qual è la tua raccomandazione sulla migliore strategia per testare l'unità e fare TDD nella ricerca?

È stato utile?

Soluzione

Questo non è un test unitario, è un test di integrazione. Quindi difficilmente puoi implementarlo come TDD.

Suppongo che il tuo codice non faccia altro che chiamare il database. Quindi non devi testare molto. Se è possibile deridere la chiamata del database al livello più basso, è possibile verificare se la chiamata si verifica. Se questo diventa molto complicato, è meglio non scrivere un test unitario per questo. Sarà difficile da mantenere.

Per scrivere il test di integrazione è necessario un vero database.

Altri suggerimenti

È possibile creare un database di prova contenente una serie di elementi noti, quindi verificare che il codice di ricerca restituisca i risultati previsti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top