Interface 使用Rhino模拟的递归模拟

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; } } 我的问题是,

我正在尝试对几个MVP实现进行单元测试,但无法找到模拟视图的最佳方法。我会试着把它写下来。视图IView由例如IControl类型的属性组成

 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/…如果有人有其他想法,请发表评论