• 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);
        }
    }

    执行结果:
    这里写图片描写叙述

  • 相关阅读:
    Java虚拟机的内存模型
    JAVA 对文件的操作
    JAVA 读取 YAML 文件
    Nginx 502 问题解决 及 安装
    Python pdb 调试 命令
    pycharm设置鼠标控制字体大小
    ISO9126 软件质量模型
    人生苦短我学Java9面向对象三大特性之多态 广深
    Golang微服务入门到精通之路3类的封装/继承/多态/接口类型 广深
    人生苦短我学Java10final关键字/代码块/抽象类 广深
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7044724.html
Copyright © 2020-2023  润新知