• 正在加载中...
  • .NET单元测试艺术

    《.NET单元测试艺术》针对这个重要主题展开讨论,引导读者从简单的测试开始,逐渐过渡到如何写出可维护、可读、可信赖的测试。同时,还涉及mock,stub和框架(如Typemock Isolator和Rhino Mocks)等高级主题,旨在帮助读者逐步掌握高级的测试模式和结构,高效地为遗留代码和甚至根本不可测试的代码编写测试。书中还讨论了测试数据库时需要的工具和其他技术。《.NET单元测试艺术》为广大.NET开发人员而写,但其他读者也可以从中受益。

    编辑摘要

    目录

    基本介绍/.NET单元测试艺术 编辑

    内容简介

    《.NET单元测试艺术》编辑推荐:以正确的方式进行单元测试,是决定项目成败的关键,是决定代码维护性强弱的分水岭,是决定你加班到深夜两点还是准点下班回家晚餐的重要因素。

    作者简介

    作者:(以色列)奥西洛夫(Roy Osherove) 译者:张博超 张昌贵 李丁山 注释 解说词:滕振宇
      
      奥西洛夫,Roy Osherove,Typemock首席架构师,ALT.NET创办人。在全球各地主要从事单元测试和测试驱动开发的顾问和培训工作。他也是TechEd和JAOO等国际性技术大会的明星发言人。

    媒体推荐/.NET单元测试艺术 编辑

    “这是我印象最深的TDD(测试驱动开发)最佳图书。它从最基础的讲起,通过严谨、客观的方式自然而然地过渡到高级主题。”
      ——Robert C.Martin(B。b大叔), 《敏捷软件开发》作者
      “若干年前就应该面世的重要图书.”
      ——Michael Feathers, 《修改遗留代码的艺术》作者
      “《.NET单元测试艺术》讲透了单元测试的方方面面,甚至论及单元测试的诟病。”
      ——Franco Lombardo, Molteni InformatiCa
      “Roy深谙测试之道。”
      ——Wendy Friedlander,Agile Solutions
      “涵括单元测试的理论与实践。”
      ——Francesco Goggi,软件工程师
      “精心打造的大师之作,凝聚着单元测试的精髓。Bravo,Bravo,BraVo!”
      ——Mohammad Azam,微软最有价值专家(Microsoft MVP),HighOnCoding
      “出神入化!”
      ——Gabor Paller,OnRelay公司
      “以前针对单元测试的书都足写给外行看热闹的,但这本书是写给专业人员阅读和参考的。”
      ——Josh Cronemayer, ThoughWorks
      “您会发现,这本书包含单元测试方方面面的内容。我爱看涉及测试代码组织与重构这一章。这是帮助您的团队/公司拥抱单元测试的理想图书,可谓字字珠玑。”
      ——Alessandro Gallo,ASP.NET Ajax in Action作者
      “初学者可以很容易从这本书中学会开始写单元测试,高手也可以学到提高技能的一些思路和方法。”
      ——Kent Beck

    图书目录/.NET单元测试艺术 编辑

    第i部分 入门
      第1章 单元测试的基本知识
      1.1 单元测试——传统定义
      1.1.1 编写“优秀单元测试”的重要性
      1.1.2 我们都写过单元测试(或多或少)
      1.2 优秀单元测试的特性
      1.3 集成测试
      1.4 优秀的单元测试——定义
      1.5 一个简单的单元测试实例
      1.6 测试驱动开发
      1.7 小结
      第2章 第一个单元测试
      2.1 单元测试框架
      2.1.1 单元测试框架的优势提供了什么
      2.1.2 xunit测试框架
      2.2 logan项目的介绍
      2.3 使用nunit的第一步
      2.3.1 安装nunit
      2.3.2 加载解决方案
      .2.3.3 在代码中使用nunit特性
      2.4 编写第一个测试
      2.4.1 assert类
      2.4.2 用nunit运行我们的第一个测试
      2.4.3 修正代码让测试通过
      2.4.4 从红色到绿色
      2.5 更多nunit特性
      2.5.1 setup和teardown
      2.5.2 验证预期的异常
      2.5.3 忽略测试
      2.5.4 设置测试类别
      2.6 针对状态的间接测试
      2.7 小结
      
      第ii部分 核心技术
      第3章 使用桩对象解除依赖
      3.1 桩对象
      3.2 发现logan对文件系统的依赖
      3.3 确认简化loganalyzer测试的方法
      3.4 重构设计增强了可测性
      3.4.1 抽取接口,以允许替换底层实现
      3.4.2 在被测类中注入桩对象
      3.4.3 在构造函数级别上接收一个接口(构造函数注入)
      3.4.4 接收一个接口作为属性的get或set的类型
      3.4.5 在调用方法之前获取一个桩对象
      3.5 重构技术的变种
      3.6 解决封装问题
      3.6.1 使用internal和[internalvisibleto]
      3.6.2 利用[conditional]属性标签
      3.6.3 使用#if和#endif的条件编译
      3.7 小结
      第4章 用模拟对象做交互测试
      4.1 基于状态的测试和交互测试
      4.2 模拟对象和桩对象之间的区别
      4.3 简单的手写模拟对象例子
      4.4 同时使用模拟对象和桩对象
      4.5 一个测试一个模拟对象
      4.6 桩链:产生模拟对象或其他桩的一批桩对象
      4.7 手写模拟对象和桩对象的问题
      4.8 小结
      第5章 隔离(模拟对象)框架
      5.1 为什么使用隔离框架
      5.2 动态创建伪对象
      5.2.1 在测试中引入rhino mocks
      5.2.2 使用动态模拟对象替换手写模拟对象
      5.3 严格模拟对象与非严格模拟对象
      5.3.1 严格模拟对象
      5.3.2 非严格模拟对象
      5.4 从伪对象返回值
      5.5 用隔离框架创建智能桩对象
      5.5.1 在rhino mocks框架中创建桩对象
      5.5.2 结合使用动态桩对象和模拟对象
      5.6 模拟对象和桩对象的参数约束
      5.6.1 用字符串约束检查参数
      5.6.2 使用约束检验参数对象的属性
      5.6.3 执行回调检验参数
      5.7 测试与事件相关的活动
      5.7.1 测试一个事件已经被订阅
      5.7.2 在模拟对象和桩对象中触发事件
      5.7.3 测试一个事件是否被触发
      5.8 隔离框架中的设置-操作-断言语法
      5.9 .net中现有的隔离框架
      5.9.1 nunit.mocks
      5.9.2 nmock
      5.9.3 nmock2
      5.9.4 typemock isolator
      5.9.5 rhino mocks
      5.9.6 moq框架
      5.10 隔离框架的优势
      5.11 避免使用隔离框架时的陷阱
      5.11.1 测试代码缺乏可读性
      5.11.2 对错误的事情做验证
      5.11.3 一个测试包含多个模拟对象
      5.11.4 测试的细节太多
      5.12 小结
      
      第iii部分 测试的代码
      第6章 测试层次及组织
      6.1 让自动化构建运行自动化测试
      6.1.1 自动构建剖析
      6.1.2 触发构建和持续集成
      6.1.3 自动化构建类型
      6.2 根据速度和类型组织测试
      6.2.1 分离单元测试与集成测试的人为因素
      6.2.2 绿色安全区域
      6.3 确保测试在代码库中
      6.4 在测试类和被测代码之间建立映射
      6.4.1 映射测试到项目
      6.4.2 映射测试到类
      6.4.3 映射测试到方法
      6.5 为应用程序打造测试api
      6.5.1 使用测试类的继承模式
      6.5.2 新建测试工具类和方法
      6.5.3 让程序员知道你的api
      6.6 小结
      第7章 优秀单元测试的支柱
      7.1 编写可信赖的测试
      7.1.1 决定何时删除或更改测试
      7.1.2 避免测试的逻辑
      7.1.3 只测试一件事情
      7.1.4 让测试容易运行
      7.1.5 确保测试覆盖率
      7.2 编写可维护的测试
      7.2.1 测试私有的或者受保护的方法
      7.2.2 去除重复代码
      7.2.3 让setup方法可维护
      7.2.4 实施测试隔离
      7.2.5 避免多个断言
      7.2.6 避免测试同一个对象的多个方面
      7.2.7 避免在测试里过度关注细节
      7.3 编写可读的测试
      7.3.1 为单元测试命名
      7.3.2 为变量命名
      7.3.3 让断言有意义
      7.3.4 将断言和动作分离
      7.3.5 setup和teardown
      7.4 小结
      
      第iv部分 设计与流程
      第8章 在组织中引入单元测试
      8.1 怎样成为变革推动者
      8.1.1 备战棘手问题
      8.1.2 说服内部人士:拥护者与阻碍者
      8.1.3 洞察切入机会
      8.2 成功之路
      8.2.1 游击策略(自下而上)
      8.2.2 说服管理层(自上而下)
      8.2.3 从外面找一个专家
      8.2.4 让过程可见
      8.2.5 锁定目标
      8.2.6 意识到即将面对的阻碍
      8.3 失败之路
      8.3.1 缺乏驱动力
      8.3.2 缺乏政治上的支持
      8.3.3 不好的实施和第一印象
      8.3.4 缺乏团队支持
      8.4 棘手的问题及其答案
      8.4.1 在现有的流程上会增加多少时间
      8.4.2 测试人员的工作会因此受到威胁吗
      8.4.3 怎么知道这确实可行呢
      8.4.4 有什么可以证明单元测试的好处
      8.4.5 为什么测试部门还是能找到缺陷
      8.4.6 我们有很多没有测试的代码:该从哪里开始呢
      8.4.7 使用多种语言开发:单元测试适用吗
      8.4.8 如果是软硬件结合的开发,该怎么办
      8.4.9 怎么知道测试本身是否有缺陷
      8.4.10 我的调试器显示代码可以正常工作:为什么还需要测试
      8.4.11 必须用tdd的方式来编码吗
      8.5 小结
      第9章 修改遗留代码
      9.1 从哪里开始添加测试?
      9.2 确定抉择策略
      9.2.1 容易优先策略的优缺点
      9.2.2 困难优先策略的优缺点
      9.3 在重构前写集成测试
      9.4 重要的遗留代码单元测试工具
      9.4.1 使用typemock isolator轻松隔离依赖项
      9.4.2 使用depender找出可测性问题
      9.4.3 在java遗留代码里使用jmockit
      9.4.4 重构java代码时使用vise
      9.4.5 使用fitnesse在重构前做验收测试
      9.4.6 阅读michael feathers的关于遗留代码的书
      9.4.7 使用ndepend来审查生产代码
      9.4.8 使用resharper浏览和重构生产代码
      9.4.9 使用simian来检测重复代码(和缺陷)
      9.4.10 使用typemock racer来检测线程问题
      9.5 小结
      附录a 设计与可测试性
      附录b 工具和框架

    添加视频 | 添加图册相关影像

    开放分类 我来补充

    互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于www.baike.com。

    登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。

    互动百科用户登录注册
    此词条还可添加  信息模块
    编辑摘要

    WIKI热度

    1. 编辑次数:5次 历史版本
    2. 参与编辑人数:5
    3. 最近更新时间:2019-07-03 16:29:12

    相关词条