如果有以下课程
public abstract class MyBaseClass : BaseClass
{
public override string Test(string value)
{
return value == null ? value : base.Test(value);
}
}
使用部分模拟我实际上可以测试测试代码的第一部分(值为null)。是否有可能测试这样一个事实,即当值!= null?
时,实际上是对基类的调用完成了答案 0 :(得分:6)
不,你不能这样做,因为你的Test方法已经覆盖了基本方法,并且没有普通的dymaic mock可以拦截MyBaseClass.Test
对base.Test
的调用。
Here's a more detailed explanation,虽然它与Moq有关。但是,同样的论点适用于Rhino Mocks和here's why。
答案 1 :(得分:0)
为什么你甚至需要对这段代码进行行为测试,并通过模拟让你的生活变得艰难?这似乎是基于状态的测试的一个很好的候选者:您提供输入(值)并在方法的输出上进行断言。很多时候保持简单可以节省一天。