2008-11-24 96 views
15

我是新来的嘲笑,我有一个新的.net Web项目是在UI-> BLL-> DAL-> DB结构中,我现在使用NUnit来做一些测试。我打算用它来测试中间层,所以我不必实际写入数据库。嘲笑傻瓜?

现在,我从来没有做过任何嘲笑,也不知道从哪里开始,所以我正在寻找一个模拟框架,有一些端到端的样本!有人能指点我一些嘲笑的材料,从一开始就有完整的样品吗?

谢谢,

雷。

回答

3

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

Cheat sheet有几个链接,如果你想尝试一些别人,虽然文章有点过时。 ?

+0

我第二次犀牛嘲笑我在一小时内捡起来。 – 2009-05-21 13:21:52

3

TypeMock ...

好,最好的嘲讽我 - 接口,你的代码位的一些重构,并找出你想测试,这样你就不需要任何嘲讽什么。 或者 - 任何依赖注入来模拟一些东西(但在你需要重构一些当然之前)

9

你应该看看一些关于在Dimecasts.net上嘲笑的视频,这是一种快速了解什么嘲笑是关于并开始你自己的代码。

Introduction to Moq

Introduction to RhinoMocks

+0

这些确实非常好,从这些短片中学到很多东西:)。 – Morph 2009-04-22 20:45:40

4

目前有许多不同的嘲弄框架。我建议你或者看看RhinoMock或TypeMock。两者对于个人/开源项目都是免费的。 TypeMock也有公司许可证。

RhinoMock迫使您重构可测试性代码(如果需要,如果您已经有可测试的代码,您的表现很好)。这需要更多的工作,但它会给你留下松散耦合的代码,这本身就是一个好处。由于这个原因,有些构造你根本无法直接用犀牛来嘲笑。但是,您总是可以引入额外的间接层并以此方式解决问题。但底线是:你需要做更多的工作,但最终的重构将会使你的代码受益。

另一方面,TypeMock通过动态修改代码(它使用分析器API来注入代码)来工作。这可以让你对那些不适合这种类型的测试的代码进行模拟。 TypeMock几乎可以让你嘲笑任何东西(除了mscorlib),所以它很容易上手,并且与遗留代码很好地协作。但是,由于您不必重构代码,因此您不会获得松散耦合类型的额外好处。另外,由于正在运行的代码被修改,TypeMock有时会导致非常奇怪的错误。