使用 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 的评论,这是底层框架的限制。无法完成,但可以重新设计以避免此问题。
我有一个覆盖方法的子类:
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 的评论,这是底层框架的限制。无法完成,但可以重新设计以避免此问题。