嘲笑傻瓜?

时间:2008-11-24 22:36:10

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

我是嘲笑的新手,我有一个新的.net网络项目,在UI-> BLL-> DAL-> DB结构中,我目前使用NUnit进行一些测试。我打算用它来测试中间层,所以我不必实际写入DB。

现在,我从未做过任何嘲弄,不知道从哪里开始,所以我正在寻找一个具有端到端样本的模拟框架!有人能指出我从头开始的一些嘲讽材料,请问完整的样品吗?

谢谢,

5 个答案:

答案 0 :(得分:9)

你应该查看一些有关Dimecasts.net上模拟的视频,这是一种快速了解模拟的内容并开始使用自己的代码的方法。

Introduction to Moq

Introduction to RhinoMocks

答案 1 :(得分:4)

目前有许多不同的模拟框架。我建议你看一下RhinoMock或TypeMock。两者都可以免费用于个人/开源项目。 TypeMock也有公司许可证。

RhinoMock强制您重构代码以实现可测试性(如果需要,如果您已经有可测试的代码,那么您可以做得很好)。这需要更多的工作,但它会给你带来松散耦合的代码,这本身就是一个福音。因此,有些结构你根本无法直接使用Rhino进行模拟。但是,您始终可以引入其他间接层并以此方式解决。最重要的是:你需要做更多的工作,但最终重构将使你的代码受益。

另一方面,TypeMock通过动态修改代码(它使用探查器API注入代码)来工作。这允许您对不适合此类测试的代码使用模拟。 TypeMock几乎允许你模拟任何东西(mscorlib除外),所以很容易上手,它可以很好地处理遗留代码。但是,因为您没有被迫重构代码,所以您无法获得松散耦合类型的额外好处。此外,由于运行代码被修改,TypeMock有时会导致非常奇怪的错误。

答案 2 :(得分:3)

Rhino Mocks是您可以使用的一个框架,我已经使用了一点。

Cheat sheet有一些链接,如果你想尝试其他一些,虽然文章有点过时。

答案 3 :(得分:3)

TypeMock?...

好吧,最好嘲笑我 - 接口,对你的代码进行一些重构,并弄清楚你想要测试什么,这样你就不需要任何嘲弄了。 或者 - 任何依赖注入来模拟一些东西(但在你需要重构之前)

答案 4 :(得分:1)

您可能对我们正在进行的书籍http://www.mockobjects.com/book感兴趣。它是Java,但原则是相同的。