【发布时间】:2013-04-15 13:11:04
【问题描述】:
是否可以模拟 is 运算符?在我的代码中,我的逻辑取决于它是什么类型的类,但值本身作为公共接口存储在类中。
基本上,我想做的是通过将模拟定义为IValue 来返回true,但为is Value 返回true
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);
}
【问题讨论】:
-
MockRepository.GenerateStub<IValue>()返回不是Value的IValue实现吗? -
@ken2k - 是的,它将在运行时创建一个使用 Castle.DynamicProxy 框架实现该接口的类。
标签: c# unit-testing generics rhino-mocks