`
yangshen998
  • 浏览: 1302294 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

(承上篇)


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

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

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

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

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

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

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

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

添加处理空指针的代码。

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

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

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

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

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

(未完待续)




分享到:
评论

相关推荐

    iOS单元测试最佳实践

    在进行iOS单元测试时,为了能够有效地进行代码测试和保证软件质量,开发者们通常会遵循一系列的最佳实践。这些最佳实践不仅能够帮助开发者们更加高效地编写测试用例,还能够确保测试用例能够覆盖应用的关键部分,...

    单元测试十大难题及解决思路

    然而,在实践中,单元测试常常遇到各种难题,以下是十大难题及解决思路: 一、代码的可测性 单元测试的难题之一是代码的可测性问题。代码通常各部分都是互相关联的,但单元测试却是需要把代码单元跟别的代码分开...

    单元测试实践实验报告模板lcq.doc

    【单元测试实践实验报告】 单元测试是软件开发过程中的关键环节,它主要针对程序的最小可测试单元,如函数、方法或对象进行验证,确保它们按照预期执行。本实验报告将详细阐述实验内容,包括使用的测试工具、静态...

    软件测试基础-单元测试

    ### 软件测试基础之单元测试详解 #### 核心知识点概览 - **单元与单元测试概念解析** - **单元测试的主要任务** - **单元测试执行过程*...通过对单元测试的深入理解和实践,开发者能够构建更加健壮、可靠的应用系统。

    Android单元测试与Volley单元测试

    本话题主要关注Android单元测试,特别是结合了Volley网络库的测试实践,以及如何利用Mockito这样的模拟工具进行测试。 **Android单元测试** Android单元测试通常是指在没有实际设备或模拟器的情况下,对应用程序的...

    Java测试与与设计——从单元测试到Web测试

    《Java测试与设计——从单元测试到Web测试》这一主题深入探讨了软件开发中的关键环节:测试。在软件工程中,测试是确保软件质量、功能完整性和用户满意度的重要步骤。本文将围绕“单元测试”和“Web测试”两个核心...

    精心汇总的5类软件模版下载(单元测试计划、单元测试报告、测试方案、功能测试报告、性能测试报告)

    本资源包精心汇总了五类重要的软件测试文档模版,包括单元测试计划、单元测试报告、测试方案、功能测试报告以及性能测试报告,这些都是软件测试工作中不可或缺的部分。 1. **单元测试计划**: 单元测试计划是软件...

    单元测试 Vector Cast Train资料

    10. **故障隔离与调试**:当测试失败时,Vector Cast提供故障隔离功能,帮助开发者快速定位问题,同时结合调试工具,可以高效地解决问题。 通过深入学习和实践Vector Cast Train资料,汽车电子软件的开发者可以提升...

    数据库操作的单元测试

    传统的单元测试通常不涉及外部资源,但当测试的对象直接与数据库交互时(例如DAO层),就需要确保数据库处于一个已知且可预测的状态。DBunit允许开发者在测试前将数据库的状态设定为一个特定的状态,并在测试结束后...

    Python技术单元测试实践.docx

    ### Python技术单元测试实践 #### 一、为什么需要单元测试? 在软件开发的过程中,单元测试是一种重要的质量保证手段。随着软件复杂度的增加和技术的进步,确保代码的质量和功能的完整性变得越来越重要。单元测试...

    C-C++ 单元自动化测试解决方案实践.doc

    知识点4:自动化生成单元测试用例的解决方案 * 本文所描述的自动化生成单元测试用例的解决方案基于 GCC 插件来实现。 * 该解决方案可以生成边界测试用例,且函数参数可边界值实现全排列,大大降低用例遗漏风险。 ...

    VS2010单元测试入门教程

    #### 一、单元测试基本概念与目的 - **单元测试**是一种软件开发过程中的测试方法,它针对软件中的最小可测试单元进行验证,通常指的是一个单独的功能模块或函数。通过单元测试确保每个小功能都能正常工作,有助于...

    持续集成与单元测试

    ### 持续集成与单元测试 #### 一、引言 随着软件开发行业的快速发展,对软件质量和开发效率的要求也越来越高。在软件开发过程中,如何有效地提高开发质量、确保核心模块的质量成为了一个重要的议题。本篇文章将...

    实用软件单元测试指导

    通过在单元测试阶段发现并解决更多的问题,可以显著降低整个项目的总体成本。 - **产品质量**:高质量的单元测试有助于提升产品的整体质量,避免因小瑕疵而导致的整体质量问题。 **1.3 具备的优点** 单元测试具备...

    Geliang_单元测试模式与重构v1.

    通过遵循正确的单元测试实践,如避免不必要的测试、编写有目的性的测试用例以及采用对象工厂模式等,我们可以大大提高软件开发的效率和质量。希望本文档能为您的单元测试实践提供有价值的指导。

    单元测试Unit Test简介ppt

    此外,单元测试还有助于减少集成测试和系统测试的时间,因为大部分问题已在单元测试阶段得到解决。 市面上有许多单元测试框架,如C++的CPPUnit和Visual Studio的Visual Unit,它们提供了方便的API和工具,帮助...

    Flex持续集成之单元测试

    Flex持续集成之单元测试是开发过程中一个至关重要的环节,它主要关注的是Flex应用程序的模块化测试,确保每个独立的代码单元都能正常工作。通过单元测试,开发者可以预先发现和修复问题,提高代码质量和稳定性,同时...

Global site tag (gtag.js) - Google Analytics