Nell'ultimo anno mi sono appassionato all'utilizzo di SpecFlow (che è una porta .NET di Cucumber)
L'ho usato sia per testare un'applicazione ASP.NET MVC sul livello web, ossia utilizzando l'automazione del browser, ma anche a livello di controller. Il primo mi dà una maggiore fiducia nella correttezza dell'applicazione, perché JavaScript è stato testato e anche la configurazione del controller impropria viene catturata.
Ma quei test sono più lenti da eseguire e più complessi da implementare rispetto a quelli appena testati sul livello controller.
I miei test sono test funzionali completi, cioè esercitano tutti i livelli dell'applicazione, fino al database. Quindi la prima cosa prima di ogni scenario è che il database sia cancellato dai dati, consentendo al test di assumere che esistono solo i dati specificati nel blocco "Dati".
Poi vedo un esempio su come usarlo, dove testano solo l'esercizio del livello del modello.
Quindi quali sono le tue esperienze con questi strumenti? Quale strato dell'applicazione test?