什么是主要的.NET 3.0模拟框架?

时间:2010-08-24 22:28:08

标签: .net unit-testing mocking c#-2.0

为了序言,我喜欢Moq。我希望我能在.NET 3.0中使用它。可悲的是,我不能,但我仍然希望使用模拟进行单元测试。另外,我之前使用过Rhino,但我绝对讨厌它。但是,为了更具描述性,这是因为界面感觉笨重且不直观 - 可以处理 - 文档要么是可怕的要么是不存在的 - 哪些都不能。

我的问题的实质是C#2.0 / .NET3.0是否还有其他体面的,直观的,流畅的界面框架,或者我是否在没有的情况下碰到我的头部对抗Rhino订货数量

3 个答案:

答案 0 :(得分:2)

你看过这个问题吗? what-c-mocking-framework-to-use

答案 1 :(得分:2)

我个人区分了三种模拟框架(按照出现的顺序):

  1. 使用字符串方法名称ala NMock2 / NUnit Mocks的Arrange-Act-Assert(AAA)。很容易上手,但不是强类型。如果重命名方法/属性,则测试将在运行时失败。

  2. 记录并重播ala Rhino Mocks。我完全同意你的观点,语法很糟糕,我讨厌使用它。它是完全强类型的,因此当您重构方法时,测试会保持最新。

  3. 使用lambdas和表达式的AAA。这些包括MOQ,最新的AAA版Rhino Mocks和Typemock Isolator。到目前为止最好的语法,但需要.NET 3.5。

  4. 如果.NET 3.5不可用,我恐怕你必须选择最不邪恶 - 可怕的Rhino Mocks语法或后期绑定到方法/属性名称。

    PS。微软有自己的名为Moles的隔离框架。我自己没有检查过它,但它应该是相当强大的(即模拟静态方法,非公共方法等)。请查看here

答案 2 :(得分:0)

NUnit有可用的模拟,所以如果你已经用它进行测试,那么你应该已经很好了。只需包含NUnit.Mocks。

但它并不能满足你的流畅的界面欲望。