使用 NSubstitute 检测对基础 class 方法的调用

Detect call to base class method using NSubstitute

我有一个覆盖方法的子类:

public class Parent {
  public virtual string Foo(string s) {
    //...
  }
}

public class Child : Parent {
  public override string Foo(string s) {
    s = s + "123";
    return base.Foo(s);           // <---- how do I detect this call?
  }
}

我可以测试被覆盖的方法是否被调用:

var mock = Substitute.ForPartsOf<Child>();
mock.Foo("abc");

mock.Received(1).Foo(Arg.Any<string>());

但是我如何检测到调用了 BASE 方法?

根据@DavidTchepak 的评论,这是底层框架的限制。无法完成,但可以重新设计以避免此问题。