TDD初体验

1、为什么要使用TDD
复杂的系统,有时会难以全面构建,而使用测试驱动能帮助你设计,自顶而下。最

初设计主要的接口不管实现;
此种开发方式,代码质量通常比较好,而且容易进行回归测试

2、 TDD的开发步骤
A、设计主要接口
B、编写单元测试
C、根据测试结果补充代码实现
循环B和C

3、 实例
需求:编写一个MathUtil类的add方法,方法接口设计如下:
class MathUtil{
public static Object add(Object a,Object b);
}
要求能够处理如下两种情况:
a和b都是Integer类型
a和b都是String类型

我以前通常会这样子做:
Object add(Object a, Object b){//动机:待以后再来实现
return null;
}
评价: 这种方式不好,会留下隐患,除非逼不得已,否则不要这么做

开发过程:
A、构建一个方法,确定接口
Object add(Object a, Object b) {
throw new TODOException();
}

B、编写一个测试用例:
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));
}
这时,testAdd的测试方法是运行不通过的,怎么处理呢?答案很简单:
根据测试用例的运行结果补充代码!

C、进一步完善-代码:
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相加的情况,我们可以通过这种方式继续

补充测试用例和实现代码。

4、注意点:
使用TODOException处理未完成的部分
在编写代码时,注意代码执行路径的全集
在测试代码中,使用assert
功能完成后,可能要进一步进行代码优化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值