Я использую NSubstitute для создания макетов для тестирования. Используя частичный макет типа, я хочу переопределить конкретный метод virtual
, но я хочу основывать реализацию переопределения на реальной реализации - эквиваленте base.Method()
в обычном подклассе.
class Client
{
public virtual ClientContext BeginScope() { ... }
}
[Test]
void Test()
{
var mockClient = Substitute.ForPartsOf<Client>();
mockClient.Configure().BeginScope().Returns(
(callInfo) =>
{
// How do I do this? As written, this just calls the override recursively and blows up the stack.
var value = mockClient.BeginScope();
DoSomethingWith(value);
return value;
});
}
Поддерживает ли это NSubstitute? Мне не удалось найти ничего, что раскрывает реализации базовых методов.