как проверить формы WPF? - PullRequest
2 голосов
/ 15 февраля 2012

Я пишу сложное приложение, где находятся серверное и клиентское приложение, если я хочу добавить новое окно в свое приложение, мне нужно запустить сервер, затем запустить клиент, а затем войти в систему, щелкнув несколько кнопок, прежде чем я достигну окна, которое я прямо сейчасразвивается, это раздражает и занимает много времени.Так что теперь я ищу какое-то решение, где я могу запустить тест, который может запускать только мою форму wpf, используя mock для сервисов (поэтому мне не нужен запущенный сервер и не нужно входить в систему), может щелкать или запускать события и проверятьэлементы управления появляются и действуют так, как я хочу.В этом случае я могу сэкономить много времени, потому что мне не нужно тратить время, когда я пытаюсь добраться до своей формы, запуская целое приложение, где мне нужно использовать логин, поиск, обходить некоторые формы проверки и т. Д. Если уже есть простое решение, тоэто будет здорово.

Ответы [ 2 ]

4 голосов
/ 15 февраля 2012

Взгляните на шаблон MVVM.

MVVM для WPF

0 голосов
/ 15 февраля 2012

Используете ли вы какие-либо инъекции зависимостей ? Было бы легко, если бы это было так, вы могли бы просто создать поддельную версию вашего тяжелого сервиса, используя mocking framework с комбинацией #if-else directives. Где-то в вашем приложении код запуска:

ILoginService service;

#if DEBUG
    service = A.Fake<ILoginService>();
    // you could even set up your fakes to return logged user to
    // automate logging in process:
    var userFake = A.Fake<IUser>();
    A.CallTo(() => service.LogIn(A<string>.Ignored)).Returns(userFake);
#else
    service = new RealLoginService();
#endif

var myWindow = new MyWindow();
var viewModel = new ViewModel(service);
myWindow.DataContext = viewModel;

// ...

Все, что вам нужно, это ViewModel (при условии, что вы используете его), чтобы иметь возможность получить ILoginService зависимость. Тогда вы можете поиграть / подделать его по своему вкусу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...