我有一个用户控件,它在我想测试的 ValidateChildren 方法中进行一些验证。我创建了用户控件的部分模拟,但是虽然我没有对 ValidateChildren 方法设置任何期望,我只是简单地调用它,它只是被跳过并且方法中的代码永远不会执行。为了尝试了解发生了什么,我创建了一个简单的测试,如下所示:
public class Foo
{
public virtual bool Method1()
{
throw new NotImplementedException();
}
public virtual bool Method2()
{
return Method1();
}
}
并用它来测试它:
[Test]
public void TestFooMethods ()
{
MockRepository m = new MockRepository();
Foo foo = m.PartialMock<Foo>();
RhinoMocksExtensions.Expect<Foo,bool>(
foo,
delegate (Foo obj)
{
return obj.Method1();
}
).Return(true);
Assert.IsTrue (foo.Method2());
}
现在我希望 foo.Method1 会被嘲笑,而 foo.Method2 不会。但这总是返回 false,如果我尝试在调试器中单步执行,则 foo.Method2() 会被单步执行,我无法介入。
任何想法为什么?