代码之家  ›  专栏  ›  技术社区  ›  Matthias Schippling

为什么RhinoMock没有通过这个测试?

  •  0
  • Matthias Schippling  · 技术社区  · 17 年前

    public class MyClass {
    
        public void Method1(){
            if (false) {
                Method2();
            }
        }
    
        public void Method2(){
            //do something here
        }
    }
    

    MockRepository mock = new MockRepository();
    MyClass presenter = mock.PartialMock<MyClass>();
    
    Expect.Call(() => presenter.Method2()).IgnoreArguments();
    
    mock.ReplayAll();
    presenter.Method1();
    mock.VerifyAll();
    

    …但测试通过了。

    我的问题:

    • 在这种情况下,这是通常的测试方法吗?(我只是从RhinoMocks和一般的模拟框架开始)
    • 为什么考试通过了?
    2 回复  |  直到 17 年前
        1
  •  3
  •   Jon Skeet    17 年前

    PartialMock

    就我个人而言,我通常不会在我测试的类中嘲笑方法。我只是模拟依赖关系,并通过接口而不是具体的类来表达它们,从一开始就避免了这个问题。

        2
  •  0
  •   Bryan Rowe    17 年前

    要使此测试失败,您只需使用方法2的签名即可:

    公共虚拟空方法2(){}