У меня есть настольное приложение C# (CompositUI/WinForms). Это приложение подключается к веб-службе с помощью SmartClient. Моя задача — внедрить (модернизировать) тесты в это приложение, используя фреймворки SpecFlow и White. Чтобы просто протестировать графический интерфейс, мне нужно издеваться над вызовами веб-сервиса. Класс, который подключается к нему, внедряется через Spring.net. Моя задача состоит в том, чтобы протестировать приложение, способное имитировать вызов веб-сервиса во время тестов, это означает, что мой тестовый код должен контролировать то, что будет делать мой макет. Проблема: метод, который запускает GUI, просто не возвращает управление потоку, который его вызвал. В результате мы не можем контролировать графический интерфейс и моки.
На данный момент у меня есть вопросы:
возможно ли (и если да, то как это сделать) запускать GUI в отдельном потоке и возвращать управление тестовому потоку?
Каковы другие возможности запуска тестов графического интерфейса, которые позволили бы мне контролировать внедрение?