Юнит-тестирование button_Click в приложении WP7 Silverlight - PullRequest
1 голос
/ 07 октября 2011

Я не использую модель MVVM для моего приложения WP7 (C #). Теперь я хочу протестировать функцию button2_click из моего кода модульного тестирования, чтобы выполнялся код внутри button_click. Пожалуйста, дайте мне знать, если есть возможность сделать это.

 private void button_Click(object sender, RoutedEventArgs e)
 {
         // Some code
 }

пример кода может быть очень полезным.

Спасибо, Мугу

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

В целом, код пользовательского интерфейса не является хорошей целью для модульного тестирования, независимо от того, используете вы MVVM или нет. Вы можете выполнить модульное тестирование этого обработчика нажатия кнопки, просто вызвав его непосредственно из своего теста. Если обработчик использует sender и ожидает, что он станет настоящей кнопкой, вам придется выработать наилучший подход, никто не сможет ответить на это, не увидев ваш код.

Если MVVM поможет вам в этом случае, это позволит вам переместить код в модель представления и представить его через свойство, которое возвращает ICommand, которое затем связывается со свойством Command кнопки , Используя этот подход, вы можете инкапсулировать код, который в противном случае был бы встроен в код пользовательского интерфейса, и легко повторно использовать код в других командах (т. Е. В опциях меню).

0 голосов
/ 07 октября 2011

Я мог бы предложить использовать платформу UI Autmation, например White , но я не буду.

Я бы предпочел, чтобы вы отделили свою презентацию / домен / любую логику от своего представления, используя хорошо установленные шаблоны, такие как MVVM, MVP, MVC и т. Д. Проблема, с которой вы только что столкнулись, является одной из причин, почему это хорошо идея. Без этого вы столкнетесь с большим количеством проблем по мере продвижения.

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