代码之家  ›  专栏  ›  技术社区  ›  tranmq

nmock2,犀牛模型。选择哪一个?

  •  1
  • tranmq  · 技术社区  · 17 年前

    我正在使用Visual Studio单元测试框架,需要使用模拟框架。我不确定我应该选择哪个模拟框架nmock2,rhino mock。你能分享一下你的经历吗?谢谢!

    2 回复  |  直到 17 年前
        1
  •  3
  •   womp    17 年前

    如果你和C 3.5合作,我也会强烈考虑MoQ。Rhino文档没有明确区分您可以使用的“语法”的数量,这很容易导致编写测试时混淆,从而导致各种错误。

    在过去两个月向Rhino做了自我介绍,并将其纳入我们正在开发的新产品版本的测试之后,我正在将所有内容都改为MOQ。我不能简单地将Rhino介绍给我们的开发人员并取得成功,因为学习曲线太费时,收获很少。我不在乎他们是否理解存根和嘲弄之间的区别,部分或严格或完整。

    MOQAPI的简单性和可发现性意味着我们的所有开发人员都可以立即开始模拟,而不必担心细微的差异。我想这有助于我们的管理者在嘲笑MOQ的创造者时有同样的哲学。

        2
  •  2
  •   tvanfosson    17 年前

    我非常喜欢使用AAA(arrange act-assert)模式的犀牛模型。我能够很快地跟上速度,并且能够做我所需要的几乎所有事情,而无需借助于手工模拟。犀牛模型中的其他一些使用模式我不太清楚,所以我建议使用AAA。

       // Arrange
    
       var mock = MockRepository.GenerateMock<IMyInterface>();
    
       mock.Expect( m => m.Method() ).Return( value ).Repeat.AtLeastOnce();
    
       //  Act
    
       var testClass = new TestClass( mock ); // injection of mocked object
    
       var expected = ...expected result from method...
       var actual = testClass.TestMethod();
    
       // Assert
    
       Assert.AreEqual( expected, actual );
    
       mock.VerifyAllExpectations();