У меня есть класс, который выглядит примерно так:NSubstitute - притворяется виртуальный метод, который вызывает еще один виртуальный метод
public class MyClass
{
public virtual bool A()
{
return 5 < B();
}
protected virtual int B()
{
return new Random.Next(1, 10);
}
}
При написании тестов для MyClass
было бы удобно, чтобы быть в состоянии сделать следующее:
[Fact]
public void Blabla()
{
var o = Substitute.ForPartsOf<MyClass>();
o.A().Returns(true);
Assert.True(o.DoSomethingElse());
}
Однако это не работает. Я получаю исключение во время выполнения:
NSubstitute.Exceptions.CouldNotSetReturnDueToTypeMismatchException
не может возвратить значение типа Boolean для MyClass.A (предполагаемый тип INT).
Есть ли способ обойти это, или мне нужно создать конкретный тестовый двойной класс, переопределяющий A
?