使用EventArg参数mstest </object>进行DelegateCommand <object>测试

时间:2011-06-28 10:50:33

标签: mvvm mstest rhino-mocks routed-events eventargs

我目前有一个事件触发器触发自定义触发器操作。

该操作将EventArgs类型的对象传递回视图的视图模型。

当我运行完美的代码时,这一切都很好。但是,当我来测试这部分代码时,一切都变得有点垃圾了。

如上所述我们正在使用MVVM类型模式,因此我在视图模型中测试事件触发器的“正在执行”结束,我想要做的是创建一个'mocked'EventArgs对象以传递给执行我正在测试的命令的方法。但是它需要一个RoutedEvent作为它的ID属性,如上所述,我无权访问它的构造函数!

Cannot Access Internal Constructor for 'RoutedEvent' here.

有没有人有任何想法?测试中的代码覆盖率比当前的实现更重要,因此如果认为这是“不可测试的”,那么我可以进行更改。

1 个答案:

答案 0 :(得分:0)

我认为我回答了自己的问题。

Casting the object passed back from the view at an earlier point表示我更容易创建传递给测试方法的对象。

这就是我现在对被测方法的看法。

public void DoItemsChanged(IList param)

在我之前

public void DoItemsChanged(object param)

其中param是SelectedItemCollection(以前是RoutedEventArgs,但现在我在视图中的事件触发器上使用IvokeCommandAction,传递SelectedItems)。现在,param更容易传递到测试方法中,而且代码也更具描述性。所以对每个人都有好处。