Mam aplikację kliencką C# (CompositUI/WinForms). Ta aplikacja łączy się z usługą internetową za pomocą SmartClient. Moim zadaniem jest wprowadzenie testów (do modernizacji) do tej aplikacji przy użyciu ramek SpecFlow i White. Aby przetestować GUI, muszę wyśmiać połączenia z usług sieciowych. Klasa, która się z nią łączy, jest wstrzykiwana przez Spring.net. Moim zadaniem jest przetestowanie aplikacji, która będzie mogła wyśmiać wywołanie usługi sieciowej podczas testów, co oznacza, że mój kod testowy musi mieć kontrolę nad tym, co zrobi moja makieta. Problem: metoda, która uruchamia GUI, po prostu nie zwraca kontroli do wątku, który ją wywołał. W rezultacie nie możemy kontrolować GUI i prób.Testowanie WinForms/CompositeUI GUI z testem SpecFlow, White, Spring i MS
So pytania mam w tym momencie są:
jest to wykonalne (a jeśli tak - jak to zrobić), aby uruchomić GUI w oddzielnym wątku i mieć kontrolę z powrotem do wątku testowej?
jakie byłyby inne możliwości prowadzenia testów GUI, które pozwoliłyby mi mieć kontrolę nad wstrzyknięciami?
To nie odpowiada na pytanie. On nie mówi o logice prezentacji testów jednostkowych, on naprawdę chce, żeby test kliknął przyciski i wpisał w polach tekstowych. Sposób budowania interfejsu użytkownika (mvvm, MVP, kod) jest nieistotny dla tego rodzaju testów. – Andy
Również WinForm jest obsługiwany, ale nie będzie większych zmian. Wpf będzie preferowanym sposobem budowania nowych aplikacji na komputery stacjonarne (te nie znikną) oraz aplikacji xaml/winrt lub win/js dla aplikacji sklepu Windows. – Andy
@Andy zmodyfikowana odpowiedź w celu wyjaśnienia technologii. –