Возможно ли издеваться над оператором is
? В моем коде у меня есть логика в зависимости от того, какой тип класса он есть, но само значение хранится в классе как общий интерфейс.Mock является оператором
В общем, что я хочу сделать, это вернуть true
, определяя издеваться, чтобы быть IValue
, но вернуться true
для is Value
public class Value : IValue
{
}
public interface IValue
{
}
public class Tester
{
public bool CheckIfValue(IValue value)
{
return value is Value;
}
}
[Test]
public void TestIfValue()
{
Tester tester = new Tester();
var value = MockRepository.GenerateStub<IValue>();
// can I add anything here which will make CheckIfValue return true?
bool isValue = tester.CheckIfValue(value);
Assert.That(isValue, Is.True);
}
Does 'MockRepository.GenerateStub()' возвращает реализацию IValue, которая не является «значением»? –
ken2k
@ ken2k - да, он создаст класс во время выполнения, который реализует этот интерфейс с использованием рамки Castle.DynamicProxy. –