glw1900 2013-04-17 23:12
浏览 234
已采纳

初学java:是不是每个class都要有一个test class呢

初学JAVA,看的是head first java,不是很明白,为什么有的class会有test class,有的,比如只有一个method的class,书里面就说不用写test class了呢,这个test是不是必要的呢?

 

  • 写回答

4条回答 默认 最新

  • yunzhu666 2013-04-18 07:39
    关注

    尽信书不如无书。书上说的东西,选择性吸收,不能这么迷信。
    你说的class的test class其实就是单元测试。

    [b]什么是单元测试[/b]
    单元测试是指对组成程序的基本单元(比如一个类或者一个方法)进行测试,验证每个单元是否完成了预期的功能。单元测试是由开发人员进行的,因此有人又称之为程序员测试。

    [b]单元测试的目标[/b]
    单元测试要达到的目标,总体来说就是保证单元内部的处理是正确的、没有遗漏和多余功能。细分而言,单元测试要达到以下几个目标:
    [list]
    [*]信息能否正确地流入和流出单元。
    [*]在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,也包括全局变量在单元中的处理和影响。
    [*]在为限制数据加工而设置的边界处,能否正确工作。
    [*]单元的运行能否做到满足特定的逻辑覆盖。
    [*]单元中发生了错误,其中的出错处理措施是否有效。
    [/list]

    [b]单元测试框架[/b]
    我们一般不需要全程手动编写测试代码,或者自己实现测试框架,使用现成的单元测试框架会为我们提供极大的方便。目前最流行的单元测试框架是xUnit系列,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit(Delphi ),NUnit(.net)等等。面向Java语言的JUnit,是其中最成功和最著名的一个。

    [b]我的一点感谢[/b]
    [color=red]其实如今单元测试达到的效果远不止它本身的功能,如今多用于“测试驱动开发”,测试优先,通过测试反映需求,然后驱动开发的过程,同时达到保证质量、促进重构、优化设计的目的。[/color]因为为了便于写单元测试的代码,就必须改进代码的设计和结构,否则如果代码结构乱或职责不单一可能就测不起来或很难测,所以就促进程序员不断去重构代码。其实好处还有很多。

    所以不存在“是不是必要”的问题,而是有时候为了在项目中达到“保证代码质量”“促进代码重构”“改善代码设计”等目标所以才这么做。

    有兴趣看看我当初的毕业设计,就是关于单元测试和测试驱动开发的:
    [url]http://yunzhu.iteye.com/blog/436691[/url]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应