Interface 使用Rhino模拟的递归模拟
我正在尝试对几个MVP实现进行单元测试,但无法找到模拟视图的最佳方法。我会试着把它写下来。视图IView由例如IControl类型的属性组成Interface 使用Rhino模拟的递归模拟,interface,recursion,properties,rhino-mocks,Interface,Recursion,Properties,Rhino Mocks,我正在尝试对几个MVP实现进行单元测试,但无法找到模拟视图的最佳方法。我会试着把它写下来。视图IView由例如IControl类型的属性组成 interface IView { IControl Control1 { get; } IControl Control2 { get; } } interface IControl { bool Enabled { get; set; } object Value { get; set; } } 我的问题是,
interface IView
{
IControl Control1 { get; }
IControl Control2 { get; }
}
interface IControl
{
bool Enabled { get; set; }
object Value { get; set; }
}
我的问题是,是否有一种简单的方法来设置IView接口上IControl接口成员的Enabled和Value的属性行为,就像递归模拟猜测一样。我不希望为视图中的所有属性设置期望值(每个视图中都有很多属性)
提前感谢您必须分别设置每个IControl实例的行为。不能在类型级别定义行为
如果你的场景真的很简单,我会考虑制作一个ValueCube和一个实现IControl的无效控件,只使用那些实例,而不是用犀牛模拟嘲弄ICOTROL。您可能仍然应该模拟IView,因为您似乎没有办法在视图上设置控件。
感谢您的响应。min的一位同事建议我使用反射来指定IControl元素中的PropertyBehavior。这样,我仍然可以模拟视图,而不必为每个视图编写冗余代码。类似这样:haacked.com/archive/2007/05/04/…如果有人有其他想法,请发表评论