昨天很奇怪的发现junit上面的annotation都没有生效,然后也看不出来问题,最后检查是发现我使用的是junit4,但是继承了TestCase,在继承了TestCase后好像所有的注解都会生效。
总结一句就是junit4不能继承TestCase。
什么时候有时间了看下源码,我感觉它应该是根据发射如果发现是TestCase的子类,那么就按照junit3的方式进行处理了。
下面再列举下junit3和4的区别:
这两个版本最大的区别在JUnit3.x中测试必须继承
TestCase,并且每个方法名必须以test
开头。比如:testMethod1()而在JUnit4
.x中不必继承
TestCase,采用了注解的方式。只要在测试的方法上加上注解@Test
即可,从而不必再遵循以前的一些显式约定和反射定位测试;在JUnit4
.x中如果继承
了TestCase,注解就不起作用了。并且有很重要的一点就是在JUnit4
.x中继承
了
TestCase后,在OutLine视图中测试单个方法时,结果整个类都run
了。还有一点就是,在3.x中需要实现setUp和tearDown方法,而在4.x中无需这样,可以自定义需要在测试前和测试后的方法,在方法前加上
@before,@after就可以了。所以在JUnit4
.x不必继承
TestCase用注解即可对单个方法进行测试。
JUnit3 |
JUnit4
|
必须引入类TestCase
import junit.framework.TestCase; |
必须引入
import org.junit.Test
;
import static org.junit.Assert.*; |
必须
继承
类TestCase
class BaseClassTest extends TestCase |
不需要 |
测试方法必须以test
开头
public void testMethod () |
不需要,
但是类开始的时候要标记 @Test
|
通过assert*方法来判断结果
assertTrue(baseClass.method ().equals(“test
.junit.BaseClass”)); |
分享到:
相关推荐
为了更好地学习和实践这些概念,文档"单元测试JUnit4和DbUnit.doc"可能包含了详细的步骤和示例代码,而"dbunitAndJunit4"和"junit4"这两个文件夹可能包含了相关的练习项目或者源码,通过阅读和运行这些代码,可以...
这有助于在遇到问题时进行调试,或者自定义JUnit的行为以适应特定项目需求。同时,源码分析也有助于学习最佳实践和设计模式,提升自身的编程技能。 JUnit4的主要特性包括: 1. **注解驱动**:通过注解可以轻松地...
在Android开发中,JUnit4是一个不可或缺的单元测试框架,它使得开发者能够编写可执行的、自动化的测试用例,以确保代码的质量和功能的正确性。这篇内容将深入探讨JUnit4在Android环境中的应用,以及如何利用它进行...
改代码是我的我的一个项目自己写完后自测所以就写了这个junit的单元测试类,以及可能会遇到的一些问题,以及其中的一些经验,项目用的是spring + mybatis。我写的这个测试类基本概括了单元测试的基本用法,只要按照...
创建一个新的Java类,例如`BubbleSortTest`,并继承自`org.junit.jupiter.api.TestInstance`(对于JUnit 5)或`org.junit.TestCase`(对于JUnit 4)。然后,在这个类中,我们将定义测试方法。 2. **定义测试方法**...
### JUnit4教程详解 #### 一、JUnit4概述与安装配置 JUnit是Java领域内最流行的单元测试框架之一,自其诞生以来,为软件开发人员提供了强大的测试能力,极大地促进了代码的质量提升和维护性。JUnit4作为JUnit的一...
13. **学习笔记**:个人的学习笔记可能包含了作者在实践过程中遇到的问题、解决方案和经验总结,对于学习者来说是一份宝贵的实战经验。 以上只是部分可能涵盖的知识点,实际的压缩包文件可能还包含更多细节和深入的...
对于使用过程中遇到的问题或疑问,可以参考官方文档、社区论坛或是通过其他在线资源寻求帮助和支持。 #### 二、安装 **2.1 依赖元数据** 为了使用JUnit5,首先需要将JUnit5的相关依赖添加到项目中。可以通过Maven...
`@Ignore`注解可以用来临时跳过某个测试,这在某些测试未完成或者遇到问题时非常有用。`@Test(timeout = value)`可以设定测试方法的超时时间,防止因为死循环或其他原因导致的无限期等待。 JUnit 4.12 还引入了参数...
这两种导入方法虽然尽量避免了导入重复的包,但使用时还是遇到了冲突。查看包中各类和文档后发现有些类(例如:断言is())同时出现在了org.hamcrest.Mathchers和org.hamcrest.core中,则在用到时候引入的时候需要注意...
最后,手册会列出一些开发者在使用Junit4过程中可能遇到的问题,并提供相应的解决策略。 总之,《开发者手册Junit4》全面覆盖了Junit4的各个方面,旨在帮助开发者熟练掌握这个强大的测试工具,提升代码质量,保障...
### Junit单元测试内部机制深度解析 #### 一、自动化软件测试的重要性 随着软件工程的不断...此外,了解JUnit的工作原理也有助于开发者在遇到测试问题时,能够迅速定位并解决问题,从而提高开发和测试的整体效率。
这对于提高测试技能,或者在遇到问题时进行调试都非常有帮助。 在实际项目中,通常会将JUnit和Hamcrest作为项目的依赖引入。在Maven或Gradle等构建工具中,可以通过指定对应的坐标来添加这两个库。例如,在Maven的...
在"spring4+junit4.8 +多线程TheadTool"的场景下,我们可以深入探讨以下几个知识点: 1. **Spring4框架**:Spring4在Spring3的基础上进行了许多改进,包括对Java 8的支持,提升了与NoSQL数据库的集成,以及对...
官方文档、社区论坛、GitHub等渠道均提供了丰富的资源和支持,帮助开发者解决使用过程中遇到的问题。 **1.4 开始使用** - **1.4.1 下载JUnit组件**:可以通过Maven或Gradle等构建工具来管理JUnit的依赖项。 - **...
标题 "JUnit 报 initializationError" 描述了一个在使用 JUnit 测试框架时常见的问题,即在执行测试时遇到 `initializationError`。这通常意味着在测试初始化阶段出现了错误,可能是由于测试类的静态初始化块、构造...
这对于学习和研究测试框架的设计思想,或者在遇到问题时排查错误,都是极其宝贵的资源。 JUnit 4.12支持断言(Assertions)进行结果验证,如`assertEquals()`、`assertTrue()`等,还提供了各种测试注解,如`@Ignore...
本文将深入探讨关于"junit-4.12.rar"包及其依赖包,以及如何解决在使用JUnit 4进行单元测试时遇到的"method initializationerror not found"错误。 首先,我们来了解JUnit 4.12版本。这是JUnit的一个稳定版本,发布...
描述中提到的“初始化错误(initializationError)”是我们在使用JUnit时可能会遇到的一种常见问题,这通常是由于缺少必要的库或者配置不正确导致的。 首先,让我们详细了解一下JUnit的核心库。JUnit的核心库主要...
GroboUtils是一个专门为了解决JUnit在多线程测试中遇到问题的扩展库。它提供了额外的功能,帮助开发者有效地编写和执行多线程单元测试,以确保在并发环境下代码的正确性和稳定性。 首先,GroboUtils为JUnit提供了一...