开发者

DelegateCommand<object> test with EventArg parameter mstest

开发者 https://www.devze.com 2023-03-16 01:56 出处:网络
I currently have an event trigger firing a custom trigger action. The action passes back a EventArgs type of object to the view\'s view-model.

I currently have an event trigger firing a custom trigger action.

The action passes back a EventArgs type of object to the view's view-model.

This is all well and good when I run the code it works perfectly. However, when I come to test this 开发者_Go百科portion of code it all goes a bit rubbish.

As stated We are using an MVVM type pattern so I'm testing the 'Doing' end of the event trigger in my view-model and what I want to do is create a 'mocked' EventArgs object to pass into the execute method of my command under test. However it requires a RoutedEvent as it's ID property as stated above and I don't have access to it's constructor!

Cannot Access Internal Constructor for 'RoutedEvent' here.

Has anyone got any ideas? The code converage in test is more important than the current implimentation so if this is thought to be 'untestable', then I can make changes.


I have answered my own Question I think.

Casting the object passed back from the view at an earlier point means that the object I am passing to the methods under test is more easily created.

This is what I have now for the method under test.

public void DoItemsChanged(IList param)

Before I had

public void DoItemsChanged(object param)

Where the param is a SelectedItemCollection (previously a RoutedEventArgs, but now I use the IvokeCommandAction on the event trigger in the view, passign the SelectedItems). The param is now more easily passed into the method for the test and the code it much more descriptive as well. So it's all good for everyone.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号