bev*_*qua 10 c# tdd unit-testing moq
我有一个服务器应用程序,我想知道如果我想开始实现TDD和使用Moq我应该从哪里开始.
我能读到哪些关于这个主题的好书,哪些不太"面向网络"?
我对此事有疑问,例如:
我应该模拟我想要测试的每个对象,还是只有那些我无法实现的对象,比如文本编写者?
我的服务器需要进行大量的设置才能真正做我想要测试的任何事情,我应该把它塞进一个[TestInitialize]函数中吗?
如果我想测试更深入的功能,我应该如何链接我的测试?
我推荐两本书:Kent Beck的" 测试驱动开发实例".这是一本关于TDD的优秀书籍,我特别喜欢这本书,因为他通过一个例子,这对于了解节奏和思考过程非常有用.另一方面,它有点嘲笑.为此,我将阅读Roy Osherove 的单元测试艺术.正如标题所暗示的那样,它并没有专注于TDD,而是关注如何编写好的单元测试; 他对嘲笑和存根有很好的报道.
关于你应该模拟的东西,mocking的想法是允许你将你正在测试的类/函数与其他环境隔离开来,这样你就可以针对你控制的虚假环境测试它的行为.在那个框架中,你不应该嘲笑这个阶级,而应该依赖于它.
一个简单的例子:如果你有一个使用Logger的类,测试该类"写入"到记录器会非常痛苦,并且可能涉及检查记录器是否已写入文本文件.这在很多层面上都不是一个好主意 - 从你的班级不关心记录器如何完成其工作的事实开始.在这种情况下,您将使用假的,模拟的Logger替换类中的Logger实例,然后您可以在适当的时候验证您的类是否正在调用Logger,而不必担心记录器的功能.
关于服务器初始化:单元测试通常在内存中,不依赖于环境,因此如果您正在进行TDD,则可能不必这样做.通常,单元测试中的太多(任何?)初始化代码是一个不好的标志.
这表明您正在寻找更多的验收测试/ BDD样式测试.我推荐使用SpecFlow和WatiN在MSDN杂志上关于行为驱动开发的最新文章; 它解释了如何通过一起开发高级测试来以测试优先的方式开发,这些测试可以验证应用程序正在执行用户想要的操作(验证测试,运行实际服务器和应用程序的位置),以及它是否正在进行通过使用一小段代码来完成开发人员的意图(单元测试).
希望这有帮助,并且快乐测试!
我最喜欢的TDD书之一就是测试驱动开发示例(Kent Beck).我也非常喜欢他所做的4部分屏幕演员.
第1集:入门测试(28分钟)
在本集中,我们对样本应用程序的第一个特征进行了第一次测试,并将其切片以提供更频繁的反馈.
第2集:孤立测试(23分钟)
在本集中,我们确保测试不会相互影响.一旦测试被隔离,我们就会实施几项新的操作.
第3集:大特色(25分钟)
在这一集中,我们采用了一个很大的功能并将其切片以提供更频繁的反馈.最后,我们清理代码以删除重复并使代码更易于阅读.
第4集:完成(20分钟)
在本集中,我们完成了示例应用程序的功能并准备供其他人使用.在开发早期推迟的设计决策现在更加清晰.该系列文章以所有剧集的课程摘要结束.
| 归档时间: |
|
| 查看次数: |
5079 次 |
| 最近记录: |