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

目录
相关文章
|
消息中间件 Java 测试技术
SpringBoot 集成 JUNIT 测试下单基本流程|学习笔记
快速学习 SpringBoot 集成 JUNIT 测试下单基本流程
156 0
SpringBoot 集成 JUNIT 测试下单基本流程|学习笔记
|
设计模式 数据库连接 测试技术
业务测试(使用 Junit 测试) | 学习笔记
简介:快速学习业务测试(使用 Junit 测试)
152 0
业务测试(使用 Junit 测试) | 学习笔记
|
测试技术
Junit 学习笔记
Junit 学习笔记
62 0
|
测试技术
【学习笔记】【Idea】【JUnit】用例测试
程序测试中常见的有:白盒测试、黑盒测试、用例测试等。 这里主要讲用例测试:JUnit
162 0
【学习笔记】【Idea】【JUnit】用例测试
|
Java jenkins 测试技术
Jenkins ANT+JUNIT实例(学习笔记二十七)
转载:http://www.cnblogs.com/helloIT/p/5761740.html 1.环境   windows10 专业版   Jenkins 2.7   apache-ant-1.9.6   JDK1.8.0_20 2.整体思路   jdk:支持ant脚本中的编译、测试等target。
1259 0
|
1月前
|
IDE Java 测试技术
使用JUnit进行单元测试:提高Java Web应用的稳定性和可靠性
【4月更文挑战第3天】本文介绍了JUnit,一个广泛使用的Java单元测试框架,由Kent Beck和Erich Gamma创建。JUnit核心特性包括注解、断言、测试套件、测试监听器和异常测试。在Java Web应用中,单元测试主要针对模型层。使用JUnit测试涉及设置环境、编写测试类、标记测试方法及运行和分析结果。单元测试能提早发现问题、简化调试、保证代码质量、促进重构并作为实时文档。掌握JUnit对提升软件质量和效率至关重要。
|
2月前
|
IDE Java 测试技术
Junit 单元测试
JUnit是Java常用的单元测试框架,简化了测试用例的编写和执行。其特点包括简单注解、自动化测试、可扩展性、灵活性及与IDE的集成。使用方法涉及创建测试类、利用注解如@Test、@BeforeEach等管理测试生命周期,以及使用各种断言方法验证结果。此外,JUnit支持参数化测试以覆盖更多输入组合,并能与Maven、Gradle等构建工具集成,提升测试效率和项目管理。
43 1
|
2月前
|
Java 测试技术 Spring
Spring Boot 基于 JUnit 5 实现单元测试
Spring Boot 基于 JUnit 5 实现单元测试
28 0
|
4月前
|
Java 测试技术
JUnit 4 单元测试
单元测试是软件开发中必不可少的一环,但是在平常开发中往往因为项目周期紧,工作量大而被选择忽略,这样往往导致软件问题层出不穷。 线上出现的不少问题其实在有单元测试的情况下就可以及时发现和处理,因此培养自己在日常开发中写单元测试的能力是很有必要的。无论是对自己的编码能力的提高,还是项目质量的提升,都是大有好处,本文将介绍 Java 单元测试框架 JUnit 4 的基础认识和使用来编写单元测试,希望同样对你有所帮助。
|
5月前
|
测试技术
Junit单元测试 org.junit.jupiter.api.extension.ParameterResolutionException异常处理
Junit单元测试 org.junit.jupiter.api.extension.ParameterResolutionException异常处理
97 0