你曾去想重构一个很老的模块,但是你只看了一眼你就恶心极了。文档,奇怪的函数和类的命名,等等,整个模块就像一个带着脚镣的衣衫褴褛的人,虽然能走,但是其已经让人感到很不舒服。面对这种情况,真正的程序员会是不会认输的,他们会接受挑战认真分析...
在典型的三层架构中,有一个独立的数据源层。主要是用来进行数据的持久化。当然,绝大部分都是数据都是存储在关系数据库中。我们一般会使用DAO模式来屏蔽数据存、取的细节,它只是暴露接口给调用它的业务逻辑层,具体接口的实现会有很多种方式,比如:...
第五章 如何开发测试用例 5.1 开发测试用例的基本策略 在软件测试中,有两种不同的测试思路,它们分别是功能性测试和结构性测试。 功能性测试,也称为黑盒测试,其基本理念是:任何程序都可以被看作是将输入定义域取值映射到输出值域的...
第四章 高质量的测试代码 4.1 测试代码同样要有高质量 有的开发人员认为,测试代码不是交付给最终用户的产品代码,只是内部测试使用的,因此其质量比产品代码低一点也无可厚非。我们认为这是一个错误的观点。 首先,虽然测试代码不会被...
第三章 单元测试的工具——测试框架 3.1 常用的单元测试框架 工欲善其事,必先利其器。程序员在写单元测试代码时,如果能借助一些单元测试框架,那么使单元测试代码的书写、维护、分类、存档、运行和结果检查变得更为容易,从而成倍地提高工...
第二章 单元测试的基本概念和核心技法 2.1 良好的单元测试——定义 我们已经了解了程序员需要单元测试,下面我们来给单元测试作一个完整的定义: ● 定义: 单元测试是一段自动执行的代码,它调用被测类或被测方法,然后验证关于被测类...
第一章 为什么使用单元测试 1.1 程序员的工作——修改软件 修改既有代码是程序员谋生的手段。但是为什么我们需要去修改软件呢?修改软件有以下4个主要起因: ● 修正bug ● 添加新特性(feature) ● 改善设计 ● 优化资...
你是否在程序开发的过程中遇到以下的情况:当你花了很长的时间开发一个应用后,你认为应该是大功告成了,可惜在调试的时候,老是不断的发现bug,而且最可怕的是,这些bug是重复出现的,你可能发现这些bug之间会有关联,但却老是找不到问题的所在。 ...
自从将开发架构迁移至DDD(领域驱动开发),就开始正式使用“构造函数依赖注入”,由CNBlogs.Infrastructure.CrossCutting.IoC(IoC容器抽象层,目前默认容器用的是Unity)负责。 通过构造函数进行依赖注入,避免了在代码中针对所依赖的接口创建相...
这篇文章将继续上一篇的问题,实现我们的iunit框架与Guice框架的整合,这个模块主要用于那些用Guice来做DI容器的项目做测试用的,包括guice框架的启动与在测试类中自动注入@Inject标注的字段 1. 目标测试类的庐山真面目 packagecom.cr...
上篇文章罗列了整个框架的核心接口,这篇文章将提供IunitExecutionListener的一个实现类-DatasetProviderListener,主要用来将测试数据插入到数据库中,待测试完成后自动删除数据 1. dbunit为核心的db测试 dbunit是个很好的数据库测试框架,...
第二节里我们介绍了iunit整体的设计思路以及核心类之间的关系,这篇将以源码+解释的方式来演示核心类的实现方式 1. IUnitRunner类 这个类是测试的入口类,直接继承自junit4。8的BlockJunit4ClassRunner,在构造函数里,我们把iunit框架的扩展...
第一节里介绍了我们框架设计的目标,这篇主要介绍的是这个框架主要的设计思路和关键技术点 1. 如何扩展junit的功能,使junit在启动时可以做一些我们定制化的功能? junit4建立了以Runner为核心的测试框架运行机制,在junit3的版本中,我们知...
1. 先从问题说起 写过程序的同学都知道,做好单元测试提高代码覆盖率对整个项目意味着什么,但是做好单元测试并不是一件那么简单的事情,因为实际业务逻辑和运行环境的复杂性,导致了我们的单元测试代码不可能都像那些helloWord那么简单,比如现在...
问题描述: 单元测试做好的关键是什么? 精彩答案: 会员 becky07: 执行单元测试,就是为了证明这段代码的行为和我们期望的一致。 进行充分的单元测试,是提高软件质量,降低开发成本的必由之路。 要做好单元测试应该抓好三...
软件质量对软件公司来说是生存之根本,而怎样的质量管理能把软件的bug消除到最低程度?这是一个很大的问题,微软企业方法是“以测试为核心”! 测试能大大提高软件质量,测试有单元测试、集成测试、性能测试、压力测试、用户验收测试(UAT)、回归...
MicrosoftVisualStudioTeamSystem集成了多种功能,这些功能用于创建高质量代码。其中一项功能用于实现单元编码测试。执行单元测试能够实现测试驱动开发,另一项有用的功能是测试私有方法。在本文中,首先从测试驱动开发技术开始讲解,因为这是敏捷开发...
前面的一篇文章(单元测试------理论篇)讨论了什么是单元测试、单元测试的优点并列举了很多不写单元测试的借口。如果你同意我们的观点,认同单元测试确实是软件开发中不可缺少的过程,那么我们就开始单元测试之旅吧! 一个比较最大值的函数 ...
GoogleC++TestingFramework(简称gtest,http://code。google。com/p/googletest/)是Google公司发布的一个开源C/C++单元测试框架,已被应用于多个开源项目及Google内部项目中,知名的例子包括ChromeWeb浏览器、LLVM编译器架构、ProtocolBuffers数据交...
在做项目当中发现很多开发人员没有单元测试的习惯,往往是写完代码后直接右键——commit,然后就完事大吉。这样做的严重后果就是在开发后期的集成测试中Bug百出,而且都是类似于变量忘记赋值、字符串拼接错误、界面忘记显示全部信息等等一系列非常小的...