2009-09-29 134 views
1

我想单元测试几个MVP实现,不能完全弄清楚嘲笑视图的最佳方法。我会尽力把它煮沸。视图IView由例如属于IControl类型的房产。使用Rhino-Mocks进行递归嘲弄

interface IView 
{ 
    IControl Control1 { get; } 
    IControl Control2 { get; } 
} 

interface IControl 
{ 

    bool Enabled { get; set; } 

    object Value { get; set; } 

} 

我的问题是,是否有一个简单的方法是设置属性行为启用和价值上的iView接口IControl接口的成员 - 就​​像递归嘲讽猜测。我宁愿不在视图上设置对所有属性的期望(每个视图上的相当一部分)。

在此先感谢

回答

0

感谢您的回复。 min的同事建议我使用反射来指定IControl元素中的PropertyBehavior。这样我仍然可以嘲笑视图,而不必为每个视图编写缩减代码。像这样:haacked.com/archive/2007/05/04/...如果有人有任何其他想法,请发表评论

0

您将不得不分别设置每个IControl实例的行为。您无法定义类型级别的行为。

如果你的场景真的很简单,我会考虑制作一个ValidControl和一个InvalidControl,它们都实现了IControl,并且只是使用那些实例来代替用Rhino Mocks模拟IControl。您应该仍然可以嘲笑IView,因为您似乎没有在视图上设置控件的方法。