[英]How to mock a not implemented method with Rhino Mock?
我有这个简化的实现和下面的单元测试:
public class Parent
{
public virtual int GetSomeValue()
{
throw new NotImplementedException();
}
}
public class Child
{
public Parent MyParent { get; set; }
public virtual Parent GetParent()
{
return MyParent;
}
public virtual int GetParentsValue()
{
var parent = GetParent();
return parent.GetSomeValue();
}
}
如何在没有实现父级的GetSomeValue()方法的情况下,用Rhino Mock测试GetParentsValue()方法?
谢谢!
你可以这样做:
Child target = new Child();
Parent mockParent = MockRepository.GenerateStub<Parent>();
mockParent.Stub(x => x.GetSomeValue()).Return(1);
target.MyParent = mockParent;
int value = target.GetParentsValue();
Assert.AreEqual(value, 1);
您可以使用以下代码:
Child child = MockRepository.GenerateStrictMock<Child>();
child.Stub(c => c.GetParentsValue()).Return(1);
Assert.AreEqual(1, child.GetParentsValue());
如果要测试GetParentsValue()方法的某些内部组件,则应使用以下方法模拟Parent.GetSomeValue()
:
Parent mockParent = MockRepository.GenerateStub<Parent>();
mockParent.Stub(x => x.GetSomeValue()).Return(1);
target.MyParent = mockParent;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.