Тест DelegateCommand<объект> с параметром EventArg mstest

В настоящее время у меня есть триггер события, запускающий пользовательское действие триггера.

Действие передает объект типа EventArgs обратно в модель представления.

Это все хорошо, когда я запускаю код, он отлично работает. Однако, когда я прихожу, чтобы проверить эту часть кода, все становится немного мусором.

Как уже говорилось, мы используем шаблон типа MVVM, поэтому я тестирую конец "Выполнение" триггера события в моей модели представления, и я хочу создать "смоделированный" объект EventArgs для передачи в метод execute моего проверяемая команда. Однако для этого требуется RoutedEvent, так как это свойство ID, как указано выше, и у меня нет доступа к его конструктору!

Cannot Access Internal Constructor for 'RoutedEvent' here.

У кого-нибудь есть идеи? Использование кода в тесте важнее текущей реализации, поэтому, если это считается "не проверяемым", я могу внести изменения.

1 ответ

Решение

Я ответил на мой собственный вопрос, я думаю.

Преобразование объекта, возвращенного из представления в более раннюю точку, означает, что объект, который я передаю тестируемым методам, легче создать.

Это то, что я сейчас имею для тестируемого метода.

public void DoItemsChanged(IList param)

Прежде чем я имел

public void DoItemsChanged(object param)

Если параметром является SelectedItemCollection (ранее это RoutedEventArgs, но теперь я использую IvokeCommandAction для триггера события в представлении, переназначаю SelectedItems). Параметр теперь легче передается в метод теста, а код - гораздо более наглядно. Так что все хорошо для всех.

Другие вопросы по тегам