单元测试实践的主要问题与解决(4)

ETDD过程与单元测试:轻松编码,高效生产
本文详细介绍了ETDD(基于测试驱动的开发)过程,包括如何可视化编写程序,如何通过单元测试确保代码功能的精确性和完整性。通过ETDD,编码过程变得更加轻松,减少了调试时间,提升了编码效率。文章还分享了如何处理空指针异常,以及在编写代码时如何避免指针偏移的问题,确保返回值正确。

(承上篇)


新加的这几行代码完成字符串的移动。这样,代码基本上写完了,结果对不对呢?CTRL+F7编译一下。

结果是完全不对的。我们来分析一下,输入是这个,全部代码都是黑色,表示都执行到了,跟我设想的一样。问题在哪里呢?

看一下计算左边空格的代码,经过计算后,指针偏移了,所以后面的计算,使用的是不正确的指针。

我们把指针先保存一下,第二次计算前再恢复回来。看看结果怎么样。

现在,参数的输出是正确的了。但是,返回值还是不对,返回值应该跟参数一样。分析一下,经过这里的计算后,指针再次偏移了,返回前没有恢复,所以,返回的是不正确的指针。

返回前,再次把指针恢复。看看结果。

现在,结果是正确的了。看一下测试结果,还有一个异常。

点击它,可以看到,是空指针产生了这个异常,我们的代码没有对空指针进行处理。在这里,可以很清晰的看到代码的执行状况。前面三行是黑色的,第四行开始都是红色的,表示代码只执行到第三行,也就是说,第三行产生了异常。

添加处理空指针的代码。

现在,代码写完了,单元测试也同步完成了。

我们来回顾一下ETDD过程:跟传统开发模式相比,ETDD多付出的,是把以前仅在头脑里想的代码功能记录下来,从而精确地、完整地进行代码的功能设计。

ETDD所得到的,是在编写代码的过程中,随时可以看到代码的行为,这可以让我们的编码过程变得轻松,而且也基本上不用调试,大家知道,调试,是最花费时间的。

另一方面,只要这里设定的数据是完整的,那么,我们的代码就没有问题。将来,如果需要修改代码,只要重新执行一下测试,就可以知道是不是破坏了原有的功能。

小结:ETDD通过可视化来帮助程序员轻松地编写程序,单元测试不再是一个负担;ETDD通过自动化,使程序员只需要在考虑代码功能时顺手记录一下,其他工作都由工具完成。ETDD提升了编码的效率,也省略大部分调试,从而大幅提升了生产力。

(未完待续)




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值