C#测试驱动开发


请输入要查询的词条内容:

C#测试驱动开发




基本信息


原书名:Professional Test Driven Development with C#

作者:James Bender Jeff McWherter

译者:贾洪峰 李菊彦

出版社:清华大学出版社

ISBN:9787302279716

出版日期:2012 年3月

开本:16开

页码:301

版次:1-1

内容简介


如果您希望编写易于实现和维护的可靠软件,那您需要使用测试驱动开发(tdd)。这本实用手册将向您展示如何创建高效的tdd过程。在用c#编写的源代码及示例的帮助下,作者带您从头到尾体验tdd方法,并向您展示如何将这一方法应用于一个现实应用程序中。在研究这个应用程序时,我们将从头构建它,执行开发过程中的每个步骤,解决出现的问题。相信您不久就能设计出自己成功的tdd过程。

主要内容

描述常见的软件问题,并提供了解决这些问题的重构实践

展示了叮用于测试wpf和silverlight应用程序的模式

在修复缺陷时,确保不会导致意料之外的副作用

展示如何构建具有可测试性的mvc应用程序

共享可用于测试wcf服务的简易步骤

解释如何运行集成测试,以确保一切功能都与计划中的一致

揭示一些最佳实践,用于编写易读、可维护的优秀测试

目录


《c#测试驱动开发》

第Ⅰ部分入门

第1章通向测试驱动开发之路

1.1软件开发的经典方法

1.2敏捷方法简介

1.3 tdd背后的概念

1.4tdd的优点

1.5tdd方法的简单示例

1.6本章小结

第2章单元测试简介

2.1什么是单元测试

2.2nunit一览

2.3与模拟对象分离

2.4 moq概览

2.5本章小结

第3章重构速览

3.1为何重构

3.2整洁代码原则

3.3代码异味

3.4典型重构

.3.5本章小结

第4章测试驱动开发:以测试为指南

4.1从测试开始

4.2红灯、绿灯、重构

4.3重构示例

4.4本章小结

第5章模拟外部资源

5.1依赖项注入模式

5.2抽象数据访问层

5.3本章小结

第Ⅱ部分将基础知识变为行动

第6章启动示例应用程序

6.1定义项目

6.2定义用户情景

6.3敏捷开发过程

6.4创建项目

6.5本章小结

第7章实现第一个用户情景

7.1第一个测试

7.2实现功能

7.3通过重构来改进代码

7.4多角度测试

7.5本章小结

第8章集成测试

8.1早集成、常集成

8.2编写集成测试

8.3运行集成测试的时机和

方式

8.4本章小结

第Ⅲ部分tdd方案

第9章web上的tdd

9.1asp.netweb窗体

9.2使用asp.netmvc

9.3使用javascript

9.4本章小结

第10章测试wcf服务

10.2测试wcf服务

10.3本章小结

第11章测试wpf和silverlight应用程序

11.1测试用户界面时的问题

11.2本章小结

第Ⅳ部分需求和工具

第12章应对缺陷和新的需求

12.1处理修改

12.2本章小结

第13章有关优秀工具的争论

13.1测试运行程序

13.2单元测试框架

13.3模拟框架

13.4依赖项注入框架

13.5其他有用工具

13.6如何向团队介绍tdd

13.7本章小结

第14章结论

14.1已经学到的内容

14.2tdd最佳实践

14.3tdd的好处

14.4如何向团队介绍tdd

14.5本章小结

附录atddkatas

前言


作为一名咨询师,我与开发人员合作过。在每一位客户那里,我都会遇到一个新团队,要了解他们是如何开发软件的。我见过非常优秀的团队,也看到过分崩离析以致从未有过一个成功项目的团队。这几年,我注意到不同的团队获得成功具有不同的特点。我开始总结,是什么使一个开发团队开发和部署的应用程序优质且能为企业提供价值。

大多数人都预计我的观察会得出这样一条结论:成功的团队拥有更聪明、更有能力的人员,他们当然能够成功了。但那些失败的团队中也有许多非常聪明的人。显然,智力不是成功的关键因素。

我在成功团队中所看到的,是他们对技术的热情,对自己作品的自豪感。他们总在学习新工具和新技术,希望能够提高软件开发速度,减少错误。而那些不太成功的团队则满足于坚持旧的工作方式,对周边发生的变化从来不感兴趣。

在我第一次遇到这些成功的、富有激情的开发团队时,他们并非都采用了测试驱动开发(test-ddVen deVelopment,TDD)。但在了解到这一概念之后,他们大多都会快速而迫切地锁定它。这些团队发现,在开发软件的过程中,增加测试驱动开发实践,可以马上得到非常出色的结果,提高了所交付应用程序的质量,减少了其中的缺陷。

要培养激情很难,扼杀它却很容易。在缺乏激情的团队里,通过介绍测试驱动开发,在许多情况下都能重新点起开发人员心中的激情。特别是对那些已经厌倦了日复一日地重复相同开发工作的开发人员而言,尤其如此!

除了激情之外,研究测试驱动开发还有另外一个非常有说服力的理由。有证据表明,近年来的两个最大变化可能会吸引极多的开发人员,这两大变化就是敏捷方法的兴起和测试驱动开发。这两者经常一起发展。我不相信,敏捷方法能够在不使用测试驱动开发的情况下获得长期成功,也想象不出测试驱动开发如何在一个瀑布环境中发挥作用。

敏捷方法已经比较成熟。它不再是一些小型开发部门使用的“疯狂牛仔式编码”方法了。一些大型公司在设计其IT部门的结构时大规模采用瀑布形式,现在也开始采用一种敏捷方法来开发越来越多的项目。即使是最官僚化的组织、政府也开始研究敏捷方法,并取得了巨大成功。这些开发清楚地表明了一个现实:那些可以在敏捷环境中工作(包括采用测试驱动开发)的开发人员,其价值很快就能超过那些不能在此环境中工作的开发人员。

驱动测试开发并不是存在于真空中的。在过去几年里,许多团体和运动都旨在提高所开发软件的质量,并使企业参与到这一过程中。新的工作理念与方式已经向前发展,可以帮助开发人员开发出能够满足企业需求的可维护应用程序。诸如“软件工艺”和SOLID等术语已经进入了世界各地富有激情的开发人员的词汇表当中。一些开发人员甚至更进一步,将自己称为软件工匠或软件技工。

为了满足人们对于学习测试驱动开发及相关知识的要求,已经有了许多书籍、网站和研讨会,其中有很多是非常出色的。但也有一些只不过是将一些常见的、可移植的工作方式加以商业化运作,为其套上一层昂贵的、专用解决方案的外衣。许多聪明的、热情的开发人员都在讨论和传播测试驱动开发。但是,没有任何一种“一站式”资源能够将一位开发人员(具体来说,是.NET开发人员)从一个新手变为一个……嗯,还是一个新手,不过是掌握了一些信息的新手。

您正在阅读本书,就凭这一点,就说明您对测试驱动开发是有兴趣的。您可能是一位开发人员,听了关于测试驱动开发的信息,但却从未真正有机会研究它。您也可能是一位很有经验的测试驱动开发人员,只是想看看这本书在讨论这一主题时与其他书有什么不同。无论是哪一种情况,就凭您正在阅读本书,就表明测试驱动开发已经成为主流,值得花时间来学习、练习和改进。

相关分词: C# 测试 驱动 开发