测试驱动开发实践介绍ppt.ppt
测试驱动开发实践介绍 测试驱动开发(Test-Driven Development,TDD)是一种软件开发过程,它强调在编写实际代码之前先编写自动化测试。这种方法可以帮助开发者编写更好的代码,提高代码质量和可维护性。 在测试驱动开发实践中,我们首先设计主要接口,然后编写测试代码,根据测试结果补充代码实现。这个过程可以循环进行,直到达到预期的结果。 lets看一个实际的例子,我们要写一个 MathUtil 类的一个 add 方法,方法接口设计如下: ``` class MathUtil { public static Object add(Object a, Object b); } ``` 这个方法需要能够处理以下情形: * a 和 b 都是 Integer 类型 * a 和 b 都是 String 类型 我们首先构建一个方法,确定接口: ``` Object add(Object a, Object b) { throw new TODOException(); } ``` 然后,我们编写测试用例: ``` void testAdd() throws Exception { Object left = new Integer(1); Object right = new Integer(2); Object result = MathUtil.add(left, right); assertEqual(result, new Integer(3)); } ``` 这个测试方法是运行不通过的,我们需要根据测试结果补充代码。答案很简单:根据测试用例的运行结果补充代码! 我们可以根据测试用例补充代码: ``` Object add(Object a, Object b) { if (a instanceof Integer && b instanceof Integer) { int leftVal = ((Integer)a).intValue(); int rightVal = ((Integer)b).intValue(); return new Integer(leftVal + rightVal); } throw new TODOException(); } ``` 补充代码后的情况,我们已经能够 Integer 相加的情况,我们可以通过这种方式继续补充测试用例和实现代码。 测试驱动开发的步骤是: 1. 设计主要接口 2. 编写测试代码 3. 根据测试运行结果补充实现 循环 2 和 3 测试驱动非常简单,但很好用! 需要注意的一些点: * 使用 TODOException 处理未完成的部分 * 在编写代码时,注意代码执行路径的全集 * 在测试代码中,使用 assert * 功能完成后,可能要进一步进行代码优化 测试驱动和单元测试的区别: * 测试驱动:先设计主要接口,接着编写单元测试,根据测试结果补充代码实现 * 单元测试:是一些对程序的测试代码,或者其它测试手段 为什么需要单元测试? 1. 复杂的系统,你也许一时难以下手,无法全面构建,测试驱动,使得你能够从容设计,自顶而下。 2. 这种开发方式,开发完成后,代码质量通常较好,而且很容易进行回归测试。 复杂的例子怎么办?答案是:没什么两样,例如: ``` String connString = "..."; IDbConnection conn = new SqlClientConnection(connString); conn.Open(); assertEquals(conn.State, ConnectionState.Open); conn.close(); assertEquals(conn.State, ConnectionState.Close); ``` 这个例子测试了 Connection 对象的状态转换。 测试驱动开发是一种非常实用的软件开发方法,可以帮助开发者编写更好的代码,提高代码质量和可维护性。
剩余14页未读,继续阅读
- 代码摆渡人2012-12-05一般般啦, 还如百度文库里的资料。
- 粉丝: 154
- 资源: 110
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助