这是场景:
interface IFather
{
void A();
}
interface ISonA : IFather
{
void B();
}
我有一个默认的 IPather 实现
private class Father : IFather
{
public void A()
{
//default behaviour
}
}
是否可以使用父亲提供的默认行为来模拟 ISoA(或任何其他实现 IFather 的 ISo)?我想做这样的事情:
var mock = new Mock<ISonA>(typeof(Father));
//with A nothing, use default behaviour
//mock.Setup(x => x.A()).Callback(() => /*something*/);
mock.Setup(x => x.B()).Callback(() => /*something*/);
其中 typeof(Father) 是告诉 Mock 在内部实现 ISonA 扩展父亲的方式。目前实现这一目标的唯一方法是使用我自己的 SonA 类而不是模拟它