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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • db2 terminate作用_db2 truncate table immediate

    db2 terminate作用_db2 truncate table immediate SQLSTATE是按类代码进行分组的;对于子代码,请参阅相应的表。表2.SQLSTATE类代码类代码  含义要获得子代码,参阅…00完全成功完成表301警告表402无数据表507动态SQL错误表608连接异常表709触发操作异常表80A功能部件不受支持表90D目标类型规范无效表100F无效标记表11

    2022年10月29日
    0
  • Idea激活码最新教程2023.3.2版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2023.3.2版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2023 3 2 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2023 3 2 成功激活

    2025年5月27日
    0
  • MBus总线的基础学习

    MBus总线的基础学习MBus总线是一种主从式半双工传输总线,采用主叫/应答的方式通信,即只有处于中心地位的主站(Master)发出询问后,从站(Slave)才能向主站传输数据。MBus的主要特点如下:1、两线制总线,不分正负极性,施工简单;2、采用独特的电平特征传输数字信号,抗干扰能力强,传输距离长;3、可以选着总线供电,降低维护成本;4、总线型拓扑结构,扩展方便,组网成本低;5、任一

    2022年10月16日
    0
  • webpack开发环境和生产环境_webpack开发环境和生产环境

    webpack开发环境和生产环境_webpack开发环境和生产环境前言如果我们需要使用webpack,就需要依赖node环境nvmnodenpmwebpack@cliwebpacknvm安装nvm是一个用来管理node版本的工具。我们之所以需要使用n

    2022年7月29日
    5
  • 如何获取iphone的UUID「建议收藏」

    如何获取iphone的UUID「建议收藏」开发的iOS应用如果再测试环境需要运行在真机设备上,那么需要在苹果的开发者后台注册测试的设备,此时需要用到UUID,下面是罗列的获取UUID的常见方法:1,用iTunes获取手机连接电脑,打开iTunes软件,然后点击序列号字母处即可获取,如果没有安装iTunes需要先安装一个。2,通过第三方工具iTools获取手机连接电脑,打开iTools软件,点击更多。出现设备标识即为手机的UDID,单击复制即可。3,通过第三方工具PP助手获取手机连接电脑,打开PP助手软件,设备标识即为手机的

    2022年8月10日
    6
  • webstorm激活码【注册码】

    webstorm激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    39

发表回复

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

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