摘要:原文地址:Comparing Moq to Rhino Mocks 原文发表时间:Mar 23, 2008       长期以来我是Rhino Mocks的大粉丝,乐此不疲的写关于它的文章。当Moq出现时,我一直对它无动于衷,因为我原以为lambda表达式是华而不实的。我认为如果它只是使用lambads的话,我对此不感兴趣。     幸运的是 在我的twitter圈子里有一些人一直对Moq大加赞赏。我是一个乐于承认错误的人,所以我决定找出Moq究竟好在哪里。结果发现,使用lambdas并不是Moq最优的部分。它有清晰干净的API设计以及弱的录制/回放模式.     为了更好的说明我的意思,这里有一个简单的例子,分别用Rhino Mocks和Moq写的两个单元测试方法。使用mock框架的测试,只用一个方法来建出一个接口。 [Test] public void RhinoMocksDemoTest() { MockRepository mocks = new MockRepository(); var mock = mocks.DynamicMock<ISomethingUseful>(); SetupResult.For(mock.CalculateSomething(0)).IgnoreArguments().Return(1); mocks.ReplayAll(); var myClass = new MyClass(mock); Assert.AreEqual(2, myClass.MethodUnderTest(123)); } [Test] public void MoqDemoTest() { var mock = new Mock<ISomethingUseful>(); mock.Expect(u => u.CalculateSomething(123)).Returns(1); var myClass = new MyClass(mock.Object); Assert.AreEqual(2, myClass.MethodUnderTest(123)); } 阅读全文]