Ho un'applicazione desktop C# (CompositUI/WinForms). Questa applicazione si connette a un servizio web utilizzando SmartClient. Il mio compito è di introdurre (eseguire il retrofit) test su questa applicazione, usando SpecFlow e White frameworks. Al fine di testare solo la GUI, ho bisogno di prendere in giro le chiamate al servizio web. La classe che si connette ad esso viene iniettata tramite Spring.net. Il mio compito è verificare che l'applicazione sia in grado di prendere in giro la chiamata del servizio web durante i test, il che significa che il mio codice di test deve avere il controllo di ciò che farà il mio simulato. Il problema: il metodo che avvia la GUI semplicemente non restituisce il controllo al thread che lo ha invocato. Di conseguenza, non possiamo controllare la GUI e i mock.Test di WinForms/CompositeUI GUI con SpecFlow, White, Spring e MS Test
quindi le domande che ho a questo punto sono:
è fattibile (e in tal caso - come farlo) per avviare GUI in thread separato e avere il controllo torna al thread test?
Quali sarebbero le altre possibilità di eseguire test GUI, che mi consentirebbero di avere il controllo dell'iniezione?
Questo non risponde alla domanda. Non sta parlando della logica di presentazione dei test unitari, ma in realtà vuole che il test faccia clic sui pulsanti e digiti nelle caselle di testo. Come si costruisce l'ui (mvvm, MVP, code behind) è irrilevante per quel tipo di test. – Andy
Anche winforms è supportato, ma non ha grandi cambiamenti. Wpf sarebbe il modo preferito per creare nuove app desktop (quelle che non stanno andando via) e xaml/winrt o win/js per le app di Windows Store. – Andy
@Andy ha modificato la risposta per chiarire la tecnologia. –