为了序言,我喜欢Moq。我希望我能在.NET 3.0中使用它。可悲的是,我不能,但我仍然希望使用模拟进行单元测试。另外,我之前使用过Rhino,但我绝对讨厌它。但是,为了更具描述性,这是因为界面感觉笨重且不直观 - 可以处理 - 文档要么是可怕的要么是不存在的 - 哪些都不能。
我的问题的实质是C#2.0 / .NET3.0是否还有其他体面的,直观的,流畅的界面框架,或者我是否在没有的情况下碰到我的头部对抗Rhino订货数量
答案 0 :(得分:2)
答案 1 :(得分:2)
我个人区分了三种模拟框架(按照出现的顺序):
使用字符串方法名称ala NMock2 / NUnit Mocks的Arrange-Act-Assert(AAA)。很容易上手,但不是强类型。如果重命名方法/属性,则测试将在运行时失败。
记录并重播ala Rhino Mocks。我完全同意你的观点,语法很糟糕,我讨厌使用它。它是完全强类型的,因此当您重构方法时,测试会保持最新。
使用lambdas和表达式的AAA。这些包括MOQ,最新的AAA版Rhino Mocks和Typemock Isolator。到目前为止最好的语法,但需要.NET 3.5。
如果.NET 3.5不可用,我恐怕你必须选择最不邪恶 - 可怕的Rhino Mocks语法或后期绑定到方法/属性名称。
PS。微软有自己的名为Moles的隔离框架。我自己没有检查过它,但它应该是相当强大的(即模拟静态方法,非公共方法等)。请查看here。
答案 2 :(得分:0)
NUnit有可用的模拟,所以如果你已经用它进行测试,那么你应该已经很好了。只需包含NUnit.Mocks。
但它并不能满足你的流畅的界面欲望。