C# 如何用Rhino mock模拟未实现的方法?
我有这个简化的实现和下面的单元测试:C# 如何用Rhino mock模拟未实现的方法?,c#,unit-testing,mocking,rhino-mocks,rhino,C#,Unit Testing,Mocking,Rhino Mocks,Rhino,我有这个简化的实现和下面的单元测试: public class Parent { public virtual int GetSomeValue() { throw new NotImplementedException(); } } public class Child { public Parent MyParent { get; set; } public virtual Parent GetParent() {
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 child = MockRepository.GenerateStrictMock<Child>();
child.Stub(c => c.GetParentsValue()).Return(1);
Assert.AreEqual(1, child.GetParentsValue());
您可以使用以下代码:
Child child = MockRepository.GenerateStrictMock<Child>();
child.Stub(c => c.GetParentsValue()).Return(1);
Assert.AreEqual(1, child.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 target=new Child();
Parent mockParent=MockRepository.generateSub();
mockParent.Stub(x=>x.GetSomeValue()).Return(1);
target.MyParent=mockParent;
int value=target.GetParentsValue();
断言.AreEqual(值1);
您可以执行以下操作:
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 target=new Child();
Parent mockParent=MockRepository.generateSub();
mockParent.Stub(x=>x.GetSomeValue()).Return(1);
target.MyParent=mockParent;
int value=target.GetParentsValue();
断言.AreEqual(值1);
初始化mockParent时失败。我没有使用存根。初始化mockParent失败。我没有用存根。