Nei test di integrazione, i processi asincroni (metodi, servizi esterni) costituiscono un codice di prova molto difficile. Se invece, ho preso in considerazione la parte asincrona e creato una dipendenza e la sostituisco con una sincrona per il testing, sarebbe una "cosa buona"?In Test di integrazione, ha senso sostituire il processo Async con uno sincrono per motivi di test?
Sostituendo il processo asincrono con uno sincrono, non sto testando nello spirito del test di integrazione? Suppongo che sto assumendo che i test di integrazione si riferiscono a test vicino alla cosa reale.
+1 per concentrarsi sui test di integrazione. Sono d'accordo che questo può essere dove si nascondono i cattivi difetti. – djna
Al momento utilizzo l'approccio "waitFor". Tuttavia, non tutte le elaborazioni asincrone sono uguali. Nella mia app, l'elaborazione asincrona viene gestita da Windows message pump (WindowsFormsSynchronizationContext in .NET) e per qualche motivo, non mi piace come viene utilizzato nei test. Quindi, la mia domanda è di funzionare se possibile. Ma hai ragione - dovremmo testare il più possibile vicino alla cosa reale. –
Inoltre, la mia app è un'app rich client, richiede/consente di mostrare l'interfaccia utente durante i test di integrazione? Il meccanismo asincrono è strettamente legato all'interfaccia utente (beh, è una pompa di messaggi di Windows e non funziona senza l'interfaccia utente). Posso modificare il codice di test in modo che l'interfaccia utente sia presente ma non interferisca, ma non sono sicuro di come di fronte all'integrazione continua. Sono tentato di sostituire il messaggio pump basato su async con qualcos'altro per motivi di testing, ma sembra che ci sia un sacco di lavoro. –