JUnit学习笔记

一.导包

  1. 打开工程属性配置:工程 → 右键 → properties → Java Builder Path

  2. 配置
    在这里插入图片描述

  3. 检查:
    在这里插入图片描述

二.使用

  1. 新建 Calculate 类
package com.leige.stujunit;

/**
 * 简单的加减乘除的计算
 * 
 * @author TSL
 *
 */
public class Calculate {
	/**
	 * 加法
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public int addition(int a, int b) {
		return a + b;
	}

	/**
	 * 减法
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public int subtraction(int a, int b) {
		return a - b;
	}

	/**
	 * 乘法
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public int multiplication(int a, int b) {
		return a * b;
	}

	/**
	 * 除法
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public int division(int a, int b) {
		return a / b;
	}
}
  1. 新建 CalculateJUnitTest 类
package com.leige.stujunit;

import org.junit.Test;

import junit.framework.TestCase;

/**
 * junit 测试
 * 
 * @author TSL
 *
 */
public class CalculateJUnitTest {

	@Test
	public void testAddition() {
		TestCase.assertEquals(14, new Calculate().addition(6, 7));
	}
	
	@Test
	public void testSubtraction(){
		TestCase.assertEquals(2, new Calculate().subtraction(9, 7));
	}
	
	@Test
	public void testMultiplication(){
		TestCase.assertEquals(10, new Calculate().multiplication(5, 2));
	}
	
	@Test
	public void testDivision(){
		TestCase.assertEquals(10, new Calculate().division(50, 2));
	}
}
  1. 右键以Junit形式运行
    在这里插入图片描述

  2. 结果输出

  • 有错误的情况
    在这里插入图片描述

  • 无错误的情况
    在这里插入图片描述

  1. 总结
  • 测试方法上必须使用 @Test
  • 测试方法必须使用 public void进行修饰
  • 新建一个源代码目录来存放测试代码
  • 测试类的包应该和被测试类的包一样
  • 测试单元中的每个方法一定要能够独立测试,其方法不能有任何依赖

三.eclipse 生成测试包

如果测试需要测试的方法很多,不想逐个的写

  1. 新建测试源代码目录

为了和正常代码区分开

在这里插入图片描述

  1. 选中待测试的类 → 右键 → new → Other
    在这里插入图片描述

  2. 选择 test 源代码目录
    在这里插入图片描述

  3. 选择要测试的方法
    在这里插入图片描述

  4. 得到待完善的代码

package com.leige.stujunit;

import static org.junit.Assert.*;

import org.junit.Test;

public class CalculateTest {

	@Test
	public void testAddition() {
		fail("Not yet implemented");
	}

	@Test
	public void testSubtraction() {
		fail("Not yet implemented");
	}

	@Test
	public void testMultiplication() {
		fail("Not yet implemented");
	}

	@Test
	public void testDivision() {
		fail("Not yet implemented");
	}

}
  1. 完善代码
package com.leige.stujunit;

import static org.junit.Assert.*;

import org.junit.Test;

import junit.framework.TestCase;

public class CalculateTest {

	@Test
	public void testAddition() {
		TestCase.assertEquals(8, new Calculate().addition(0, 8));
	}

	@Test
	public void testSubtraction() {
		TestCase.assertEquals(10, new Calculate().subtraction(20, 10));
	}

	@Test
	public void testMultiplication() {
		TestCase.assertEquals(10, new Calculate().multiplication(5, 2));
	}

	@Test
	public void testDivision() {
		TestCase.assertEquals(10, new Calculate().division(100, 10));
	}

}
  1. 总结
  • 新建测试源代码根目录,保持代码清爽
  1. 在测试中结果中关于Failure和error的解释
  • Failure 一般由测试单元使用断言方法判断失败引起的,这个报错,说明测试点发现了问题,即程序输出的结果和我们预期的不一样
  • error 是由代码异常引起的,它可以产生代码本身的错误,也可以是测试代码中的一个隐藏bug!!!

四.JUnit运行流程

  1. 新建 JunitTestRunProcess
package com.leige.stujunit;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

public class JunitTestRunProcess {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		System.out.println("this is beforeClasss....");
	}
	
	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		System.out.println("this is afterClasss....");
	}
	
	@Before
	public void setUp() throws Exception {
		System.out.println("this is brfore....");
	}
	
	@After
	public void tearDown() throws Exception {
		System.out.println("this is after....");
	}

	@Test
	public void test1() {
		System.out.println("this is test1....");
	}
	
	@Test
	public void test2() {
		System.out.println("this is test2....");
	}

	@Ignore
	public void testIgnore(){
		System.out.println("this is ignore ....");
	}
}
  1. 查看结果
this is beforeClasss....
this is brfore....
this is test1....
this is after....
this is brfore....
this is test2....
this is after....
this is afterClasss....
  1. 总结
  • @BeforeClass 修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在一份实例,他比较适合加载配置文件(针对所有测试,只执行一次 )
  • @AfterClass 所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次 )
  • @Before 和 @After 会在每个测试方法前后各执行一次
  • @Test 测试方法,在这里可以测试期望异常和超时时间
  • @Ignore 忽略测试的方法

原文链接:https://blog.csdn.net/fulishafulisha/article/details/80158392

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值