I framework di simulazione sono utili per creare oggetti mock che isolano il codice sottoposto a test dall'ambiente software circostante. Alcuni framework di derisione non possono prendere in giro metodi non virtuali, quindi richiedono di creare un Interface
per ogni classe, se non si desidera rendere i metodi virtual
.
Come distingui queste interfacce da quelle "reali"? Cioè, se hai un'API pubblica, dai il nome alle interfacce che vuoi che il tuo cliente usi qualcos'altro, o nascondi le interfacce di test in un assembly o spazio dei nomi separato?
Per inciso, è davvero necessario creare tutte quelle interfacce? Non mi piace l'idea di rendere tutti i miei metodi virtual
, ma io veramente non mi piace l'idea di creare tante interfacce solo per renderle accessibili a un sistema di simulazione.