我现在有一堂课是这样的:
public class MyClass {
public void Method1(){
if (false) {
Method2();
}
}
public void Method2(){
//do something here
}
}
所以 Method2 永远不会被调用(我的代码看起来有点不同,但我有这个 if 子句的计算结果为 false,因此不执行 Method2。通过调试检查它以确定)。我想告诉 RhinoMocks 我希望 Method2 被调用并且测试失败:
MockRepository mock = new MockRepository();
MyClass presenter = mock.PartialMock<MyClass>();
Expect.Call(() => presenter.Method2()).IgnoreArguments();
mock.ReplayAll();
presenter.Method1();
mock.VerifyAll();
...但是测试通过了。
(Expect.Call 中 lambda 表达式的原因是,我的实际 Method2 有参数)
我的问题:
- 这是在这种情况下进行测试的常用方法吗?(我只是从 RhinoMocks 和一般的模拟框架开始)
- 为什么测试会通过?