Тест 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). Параметр теперь легче передается в метод теста, а код - гораздо более наглядно. Так что все хорошо для всех.