我正在尝试对几个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的属性行为-就像递归模拟猜测一样。我不希望为视图上的所有属性设置期望(每个视图上都有相当多的属性)。
提前感谢
发布于 2011-02-18 20:21:02
谢谢你的回复。min的一位同事建议我在IControl元素中使用反射来分配PropertyBehavior。这样,我仍然可以模拟视图,而不必为我拥有的每个视图编写冗余代码。类似于: haacked.com/archive/2007/05/04/…如果任何人有任何其他的想法,请评论
发布于 2009-09-29 12:21:51
您必须分别设置每个IControl实例的行为。不能在类型级别上定义行为。
如果您的场景真的这么简单,我会考虑创建一个ValidControl和一个InvalidControl,它们都实现IControl,并且只使用它们的实例,而不是使用Rhino Mock模拟IControl。您可能仍然应该模拟IView,因为您似乎没有在视图上设置控件的方法。
https://stackoverflow.com/questions/1491311
复制相似问题