Вы должны использовать Moq для создания объекта Mock и установить для свойства CallBase значение true, чтобы использовать поведение объекта.
Из документации Moq:
CallBase определяется как «Вызов реализации базового класса, если ожидание не переопределяет член. Это называется «Частичное издевательство». Это позволяет издеваться над определенной частью класса без насмешек.
Пример кода:
[Test]
public void FailintgTest()
{
var mock = new Moq.Mock<MyClass>();
mock.Setup(m => m.Number).Returns(4);
var testObject = mock.Object;
Assert.That(testObject.Number, Is.EqualTo(4));
Assert.That(testObject.Name, Is.EqualTo("MyClass"));
}
[Test]
public void OKTest()
{
var mock = new Moq.Mock<MyClass>();
mock.Setup(m => m.Number).Returns(4);
mock.CallBase = true;
var testObject = mock.Object;
Assert.That(testObject.Number, Is.EqualTo(4));
Assert.That(testObject.Name, Is.EqualTo("MyClass"));
}
public class MyClass
{
public virtual string Name { get { return "MyClass"; } }
public virtual int Number { get { return 2; } }
}