junit3和junit4的比较

简介: junit3和junit4的比较

JUnit3部分:


在junit3里面对于一个测试用例的定义时需要继承一个TestCase,而且对于其中的每一个测试方法都要一test命名开头;在每一个测试用例里面都会写有一个setup()的方法,这个方法主要作用是用于初始化数据和便于以后测试时共享数据的;


一般按照习惯来讲,我们总是习惯在setup方法里面new 一些新的对象,这也是每一个测试人员所要遵守的规定,每一次进行测试的时候都要用一个全新的对象,以防止有副作用产生;


而在teardown()方法里面一般都是进行一些对于相应对象销毁的操作,(在每一个测试方法执行结束之后就会自动执行此方法)。


我在自己的工程里面写了一个简单的小例子来展示一下:


package com.sise.lh.lab01;
public class FindNumber {
    private double a;
    private double b;
    private double c;
    public FindNumber() {
        // TODO Auto-generated constructor stub
    }
    public double Max(double num1,double num2)
    {
        return (num1>num2?num1:num2);
    }
    public double Min(double num1,double num2)
    {
        return (num1<num2?num1:num2);
    }
}
复制代码


下面是相应的junit3测试代码:


package com.sise.lh.test01;
import com.sise.lh.lab01.FindNumber;
import junit.framework.TestCase;
/*在junit3里面每一个测试用例或者测试类都要继承一个testcase*/
public class FindNumberTestWithJunit3 extends TestCase {
    public FindNumber f1;
    /* setup方法里面的内容会在每一个测试方法执行之前都运行一遍,主要作用是用于初始化数据和共享数据 */
    protected void setUp() throws Exception {
        f1 = new FindNumber(); // 每一次都用一个全新的对象来进行测试,这是测试的基本原则,以防止有副作用产生
    }
    /* 主要作用适用于销毁一些相应的对象 */
    protected void tearDown() throws Exception {
        super.tearDown();
    }
    /* 在junit3里面的每一个测试方法都要求以test开头 */
    public void testMax() {
        double num1 = 10;
        double num2 = 20;
        double result = f1.Max(num1, num2);
        assertEquals(20.0, result);
    }
    /* 在junit3里面的每一个测试方法都要求以test开头 */
    public void testMin() {
        double num1 = 10;
        double num2 = 20;
        double result = f1.Min(num1, num2);
        assertEquals(10.0, result);
    }
}
复制代码


运行结果如下:


网络异常,图片无法展示
|


到了junit4里面的时候,相应的一些机制发生了一些变化,@Annotation注解注解标签出现了;


常见的@annotation注解有以下几种:


@Before,@After,@Test,@RunWith,@BeforeClass,@AfterClass,@Ignoreden等等一系列,再次就不一一列举了;


接下来还是针对刚才所写的那个类进行测试,只不过这一次使用junit4进行编写的


package com.sise.lh.test01;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.sise.lh.lab01.FindNumber;
public class FindNumberTestWithJunit4 {
    public FindNumber f1;
    @Before
    public void setUp() throws Exception {
        f1=new FindNumber();
    }
    @After
    public void tearDown() throws Exception {
    }
    @Test
    public void testMin() {
        double num1 = 10;
        double num2 = 20;
        double result = f1.Min(num1, num2);
        assertEquals(10.0,result,0);
    }
    @Test
    public void testMax()
    {
        double num1 = 10;
        double num2 = 20;
        double result = f1.Max(num1, num2);
        assertEquals(20.0,result,0);
    }
}
复制代码


运行结果如下:


网络异常,图片无法展示
|

目录
相关文章
|
11月前
|
Java 测试技术 C++
Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理
Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理
113 0
Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理
|
XML 设计模式 Java
Spring——整合junit4、junit5使用方法
Spring——整合junit4、junit5使用方法
|
测试技术 Android开发
|
测试技术 Java
【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题
今天是用JUnit测试一段代码,报错method initializationerror not found::出现如下问题: 双击这个就显示出现如下的错误: 查询网上,说是junit版本的问题: 那我就不使用JUnit这个Libernary了,下载最新的junit4_12的架包进行替换。
1131 0
|
1月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
7天前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
27 6
|
29天前
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
21 2