`
oywl2008
  • 浏览: 1015033 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Junit

 
阅读更多

第一,junit使用很方便。在Eclipse的支持下,上手很快,很轻松就可以写出测试用例。

第二,震撼于"先写测试"的理念。开始比较抵触 "先写测试",觉得很不理解,非常别扭。通过学习知道了写 junit的目的不仅仅是测试程序,她从根本上督促自己设计程序结构。写完junit后,我们对我们要写的程序的目的就非常的清晰,写起来相当的快。在testCase建立后,后面的测试就是自动化的了,不需要我们手工对程序反复检查,也节约的很多时间,并且保证了品质。

第三,她的实现结构很精巧。用reflection机制自动执行testXX方法,以及composite的应用,都值得我们学习。

现在仅仅是摸到了JUnit的皮毛,要在大规模开发中使用JUnit,还是有很多问题有待解决。

首先是测试的粒度。如果每个方法都要去写一个测试方案的话工作量会很大,但到底什么样的方法可以不去测试呢,而且有些方法和其他的方法关联性很大,我们想测试方案又要剥离与他关联的方法,这样测试写起来就很大,这样的结果是,测试类也需要被测试了,我们是不是又去写一个test 的test 程序呢,这些都需要在实践中摸索.

 

 

 此时我们的工程就把这些Junit的测试相关的类都导进来了,这时就可以开始我们的测试历程了。

 

  我们通常是在src源文件包下写我们的源码,为了保证我们的测试类既能与我们的工程分开又能使我们的项目的测试类编译之后能够与我们的要进行测试的类的编译文件在同一个包下,我们可以在工程中新建一个test源包,但是我们要保证测试类和我们的要测试的类有一样的包路径,例如我们的测试类的相对路径为 org.rjb.Calculate,那么我们在test源包下的测试类的路径为org.rjb.CalculateTest,这样一来他们编译之后就在同一个包路径下了,不信你可以试试看噢。

  下面我先讲讲一些规则:


  测试类名词我们可以定义为被测试类类名+Test来命名(不成文规定);

  测试类必须继承自junit.framework.TestCase,它有几个这里需要声明的方法:


  1.public void setUp():这个方法是在每个测试方法开始前要调用的方法,也就是说有几个方法要测试,那就要进行几次 调用,在JUnit3.8中只能这样,但是在JUnit4.0中却可以在整个测试过程中只调用一次。

  2.public void tearDown():这个方法就和上面的方法相对了,也就是在每个测试方法测试之后调用,调用次数完全和上面的方法相同。


  测试类中的方法命名规则为test+被测试方法名,当然要被测试方法名要大写了。也就是说测试方法必须是test开头的,可见找到相应的方法是通过反射来找到的。

 

  考虑到我们能够一次性把所有的测试类都执行,我们可以定义一个测试类,只要继承junit.framework.TestSuite就可以了,此时我们必须有下面方法public static Test suite(),究竟如何使用请看下面的代码展示.

 

 

JUnit 将测试失败的情况分为两种:failure 和 error。Failure 一般由单元测试使用的断言方法判断失败引起,它表示在测试点发现了问题;而 error 则是由代码异常引起,这是测试目的之外的发现,它可能产生于测试代码本身的错误(测试代码也是代码,同样无法保证完全没有缺陷),也可能是被测试代码中的一个隐藏的 bug。

 

请牢记这一条 JUnit 最佳实践:测试任何可能的错误。单元测试不是用来证明您是对的,而是为了证明您没有错。

 

 

 

 

分享到:
评论

相关推荐

    junit5.rar包含JUnit Platform + JUnit Jupiter + JUnit Vintage依赖jar包

    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...

    junit的jar包

    Files contained in junit4-4.8.2.jar: LICENSE.txt META-INF/MANIFEST.MF junit.extensions.ActiveTestSuite.class junit.extensions.RepeatedTest.class junit.extensions.TestDecorator.class junit.extensions...

    junit-4.12-API文档-中文版.zip

    赠送jar包:junit-4.12.jar; 赠送原API文档:junit-4.12-javadoc.jar; 赠送源代码:junit-4.12-sources.jar; 包含翻译后的API文档:junit-4.12-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:...

    JUnit in Action 3nd Edition

    "JUnit in Action 3rd Edition" JUnit是一种流行的Java单元测试框架,由Kent Beck和Eric Gamma于1997年创立。JUnit在软件测试领域中扮演着重要的角色,帮助开发者编写高质量的代码。下面是关于JUnit的重要知识点: ...

    junit-4.13.2-API文档-中文版.zip

    赠送jar包:junit-4.13.2.jar; 赠送原API文档:junit-4.13.2-javadoc.jar; 赠送源代码:junit-4.13.2-sources.jar; 赠送Maven依赖信息文件:junit-4.13.2.pom; 包含翻译后的API文档:junit-4.13.2-javadoc-API...

    junit-jupiter-api-5.7.2-API文档-中文版.zip

    赠送jar包:junit-jupiter-api-5.7.2.jar; 赠送原API文档:junit-jupiter-api-5.7.2-javadoc.jar; 赠送源代码:junit-jupiter-api-5.7.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.7.2.pom; ...

    Junit单元测试所需要的两个jar包

    1 Junit是什么 JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。 2 单元测试概念 单元:在Java中,一个类就是一个...

    junit-jupiter-api-5.8.2-API文档-中文版.zip

    赠送jar包:junit-jupiter-api-5.8.2.jar; 赠送原API文档:junit-jupiter-api-5.8.2-javadoc.jar; 赠送源代码:junit-jupiter-api-5.8.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.8.2.pom; ...

    junit-jupiter-api-5.4.2-API文档-中英对照版.zip

    赠送jar包:junit-jupiter-api-5.4.2.jar; 赠送原API文档:junit-jupiter-api-5.4.2-javadoc.jar; 赠送源代码:junit-jupiter-api-5.4.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.4.2.pom; ...

    junit-4.13.2的压缩包,JUnit是Java编程语言的单元测试框架,用于编写和可重复运行的自动化测试

    JUnit是Java编程语言的单元测试框架,用于编写和可重复运行的自动化测试。JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有(下列注解标示了单元测试的不同运行阶段执行的代码): @BeforeClass 全局只会...

    junit-jupiter-api-5.8.0-M1-API文档-中文版.zip

    赠送jar包:junit-jupiter-api-5.8.0-M1.jar; 赠送原API文档:junit-jupiter-api-5.8.0-M1-javadoc.jar; 赠送源代码:junit-jupiter-api-5.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.8.0-...

    junit-platform-launcher-1.8.0-M1-API文档-中文版.zip

    赠送jar包:junit-platform-launcher-1.8.0-M1.jar; 赠送原API文档:junit-platform-launcher-1.8.0-M1-javadoc.jar; 赠送源代码:junit-platform-launcher-1.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-...

    junit-jupiter-engine-5.8.2-API文档-中文版.zip

    赠送jar包:junit-jupiter-engine-5.8.2.jar; 赠送原API文档:junit-jupiter-engine-5.8.2-javadoc.jar; 赠送源代码:junit-jupiter-engine-5.8.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-engine-...

    junit-jupiter-params-5.7.2-API文档-中文版.zip

    赠送jar包:junit-jupiter-params-5.7.2.jar; 赠送原API文档:junit-jupiter-params-5.7.2-javadoc.jar; 赠送源代码:junit-jupiter-params-5.7.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-params-...

    powermock-module-junit4-2.0.9-API文档-中英对照版.zip

    赠送jar包:powermock-module-junit4-2.0.9.jar; 赠送原API文档:powermock-module-junit4-2.0.9-javadoc.jar; 赠送源代码:powermock-module-junit4-2.0.9-sources.jar; 赠送Maven依赖信息文件:powermock-...

    Junit测试Void方法

    Junit通常用于那些有明确返回值的方法的测试,而无法对返回值是void类型的方法进行测试,因为Junit的assert断言方法只适用于预期值与实际值的比较,对于void类型的方法,我们无法从它的return语句获得具体的返回值。...

    archunit-junit5-api-0.14.1-API文档-中文版.zip

    赠送jar包:archunit-junit5-api-0.14.1.jar; 赠送原API文档:archunit-junit5-api-0.14.1-javadoc.jar; 赠送源代码:archunit-junit5-api-0.14.1-sources.jar; 赠送Maven依赖信息文件:archunit-junit5-api-...

    junit5学习入门

    • JUnit 是一个开放的资源框架,用于编写和运行测试。 • 提供注释来识别测试方法。 • 提供断言来测试预期结果。 • 提供测试运行来运行测试。 • JUnit 测试允许你编写代码更快,并能提高质量。 • JUnit 优雅...

    JUNIT

    JUnit

    junit-4.11-API文档-中文版.zip

    赠送jar包:junit-4.11.jar; 赠送原API文档:junit-4.11-javadoc.jar; 赠送源代码:junit-4.11-sources.jar; 赠送Maven依赖信息文件:junit-4.11.pom; 包含翻译后的API文档:junit-4.11-javadoc-API文档-中文...

Global site tag (gtag.js) - Google Analytics