JUnit学习笔记

JUnit学习笔记

JUnit3与JUnit4区别

  • Junit3:
    • 测试用例必须是公共类;
    • 测试用例必须继承类TestCase
    • 测试用例的测试方法必须是公有的;
    • 测试用例的测试方法必须被声明为void;
    • 测试用例的测试方法的前置名词必须是test;
    • 测试用例的测试方法无任何参数传递;
  • Junit4:
    • 测试类不需要继承TestCase;
    • 测试方法命名没有特定要求,只要在待测方法前加上@Test即可;
    • 通过@before替代setUp方法,@After替代tearDown方法;
      在一个测试类中,甚至可以使用多个@Before来注释多个方法,这些方法都是在每个测试之前运行。说明一点,@Before是在每个测试方法运行前均初始化一次,同理@After是在每个测试方法运行完毕后均运行一次,也就是说,经过这两个注释的初始化和注销,可以保证各个测试方法之间的独立性而互不干扰,它的缺点是效率低。
      在JUnit4中加入了一项新特性。加入了两个注释:@BeforeClass@AfterClass,使用这两个注释的方法,在该测试类中方法的测试之前、后各运行一次,而不是按照各个方法各运行一次。对于一些资源消耗大的项目,可以使用这两个注释。
    • 此外Junit4还可以进行异常测试(@Test(expected=*.class))和超时测试(@Test(timeout=xxx)),并且提供了一个新的assert方法:assertEquals(Object[] expected, Object[] actual),用于比较数组数据;

JUnit3的使用

1 测试目标

package club.chuxing.junit3;

public class Calculator {
    
    public double add(double a, double b) {
        return a + b;
    }
    public double minus(double a, double b) {
        return a - b;
    }
    public double multiply(double a, double b) {
        return a * b;
    }
    public double divide(double a, double b) {
        return a / b;
    }
}

2 测试用例

TestCalculator.java:

package club.chuxing.junit3;

import junit.framework.TestCase;

public class TestCalculator extends TestCase{
    
    private Calculator calc;
    protected void setUp() throws Exception {
        super.setUp();
        calc = new Calculator();
    }
    protected void tearDown() throws Exception {
        super.tearDown();
    }
    public void testAdd() {
        assertEquals(3.0, calc.add(1, 2));
    }
    public void testMinus() {
        assertEquals(-1.0, calc.minus(1, 2));
    }
    public void testMultiply() {
        assertEquals(2.0, calc.multiply(1, 2));
    }
    public void testDivide() {
        assertEquals(0.5, calc.divide(1, 2));
    }
}

TestCalculator2.java:

package club.chuxing.junit3;

import junit.framework.TestCase;

public class TestCalculator2 extends TestCase{
    
    private Calculator calc;
    protected void setUp() throws Exception {
        super.setUp();
        calc = new Calculator();
    }
    protected void tearDown() throws Exception {
        super.tearDown();
    }
    public void testAdd() {
        assertEquals(4.0, calc.add(2, 2));
    }
    public void testMinus() {
        assertEquals(0.0, calc.minus(2, 2));
    }
    public void testMultiply() {
        assertEquals(4.0, calc.multiply(2, 2));
    }
    public void testDivide() {
        assertEquals(1.0, calc.divide(2, 2));
    }
}

3 测试单元

package club.chuxing.junit3;

import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;

public class TestAll extends TestSuite {
    
    public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTestSuite(TestCalculator.class);
        suite.addTestSuite(TestCalculator2.class);
        return suite;
    }

    public static void main(String[] args) {
        TestRunner.run(suite());
    }
}

运行结果:

........
Time: 0.009

OK (8 tests)

这里写图片描述

JUnit4的使用

CalculatorTest.java

package club.chuxing.junit4;

import static org.junit.Assert.*;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class CalculatorTest {
    
    private static Calculator calc;
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        calc = new Calculator();
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
    }

    @Test
    public void testAdd() {
        assertEquals(3, calc.add(1, 2), 0.00001);
    }

    @Test
    public void testMinus() {
        assertEquals(-1, calc.minus(1, 2), 0.00001);
    }

    @Test
    public void testMultiply() {
        assertEquals(2, calc.multiply(1, 2), 0.00001);
    }

    @Test
    public void testDivide() {
        assertEquals(0.5, calc.divide(1, 2), 0.00001);
    }
}

运行结果:
这里写图片描述

转载:http://blog.csdn.net/foreverling/article/details/50452759

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109015.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JSP include参数的中文乱码问题

    JSP include参数的中文乱码问题最近在做jsp页面时,需要在a.jsp页面中,include一个b.jsp文件。a.jsp传递给b.jsp的参数是动态加载的,可能是中文。当出现中文时,b.jsp就会显示乱码。a.jsp文件如下所示:Stringsearchword=(String)request.getAttribute(“searchword”);   “/>b.jsp文件如下所示:

    2022年7月13日
    16
  • Particle_filter 粒子滤波器 的学习笔记

    Particle_filter 粒子滤波器 的学习笔记粒子滤波是一种基于蒙特卡洛模拟的非线性滤波方法,其核心思想是用随机采样的粒子表达概率密度分布。粒子滤波的三个重要步骤为:1)粒子采样,从建议分布中抽取一组粒子;2)粒子加权,根据观测概率分布,重要

    2022年8月6日
    4
  • 常见贴片电容封装尺寸

    常见贴片电容封装尺寸贴片电容封装尺寸 毫米 英寸 封装 L 长度公制 毫米 英制 英寸 W 宽度公制 毫米 英制 英寸 t 端点公制 毫米 英制 英寸 02010 60 0 03 0 024 0 001 0 30 0 03 0 011

    2026年1月15日
    1
  • 验证码Kaptcha的使用「建议收藏」

    验证码Kaptcha的使用「建议收藏」Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码。以图片的形式显示,从而无法进行复制粘贴。

    2022年6月18日
    41
  • linux添加防火墙_centos防火墙设置与端口开放的方法

    linux添加防火墙_centos防火墙设置与端口开放的方法一、介绍当设置ip过滤的时候,如果ip较多,经常修改,修改防火墙规则比较麻烦,可以使用ipset,ipset是一个集合,防火墙可以添加集合,只需要一条防火墙规则就可以实现整个集合里面ip的过滤iptables-IINPUT-mset–match-setbanipsrc-ptcp–destination-port80-jDROPTYPENAME:=method:datatype[,datatype[,datatype]]可以使用的method:bitmap,ha

    2022年10月6日
    3
  • C语言 Socket TCP通信

    C语言 Socket TCP通信TCP简介传输控制协议(TCP)是一种网络通信协议,旨在通过Internet发送数据包。TCP是OSI层中的传输层协议,用于通过传输和确保通过支持网络和Internet传递消息来在远程计算机之间创建连接。

    2022年7月13日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号