前言:编译器版本是 idea 2020.1.3 使用JUnit时与eclipse有所区别
JUnit单元测试框架主要用于Java语言程序的单元测试,目前使用的主流版本是JUnit以上版本。
一般通过main方法来进行测试有如下问题
- 要在原来测试的基础上修改,可能破坏原来的测试逻辑
- 测试成功与否只能通过肉眼进行观察,如果测试的量很大,很难观察。
为了应付这种测试的需求,我们就需要使用 Junit 框架来进行测试工作。
- 新增加的测试,对原来的测试没有影响
- 如果测试失败了,会立即得到通知
一、配置
安装JUnit插件
完成项目的创建后,点击 File-Settings-Plugins 在搜索栏搜索 JUnit,此时出现了几个Plugins,选择 JUnit
编写测试类
public class SumUtil {
public static void main(String[] args) {
int result = sum1(1,2);
System.out.println(result);
int result2 = sum2(1,2,3);
System.out.println(result2);
}
public static int sum1(int i, int j) {
return i+j;
}
public static int sum2(int i, int j, int k) {
return i+j+k;
}
}
public class Calculator {
public void testSum1() {
int result = SumUtil.sum1(1, 2);
Assert.assertEquals(result, 3);
}
}
创建测试
方法一:
在对应方法上方加入@Test
然后使用alt+enter快捷键
我选择的是JUnit4
二、 使用
运行
import org.junit.Assert;
import org.junit.Test;
public class Calculator {
@Test
public void testSum1() {
int result = SumUtil.sum1(1, 2);
Assert.assertEquals(result, 3);
}
}
控制台显示运行成功
加入错误方法后再运行
import org.junit.Assert;
import org.junit.Test;
public class Calculator {
@Test
public void testSum1() {
int result = SumUtil.sum1(1, 2);
Assert.assertEquals(result, 3);
}
@Test
public void testSum2() {
int result = SumUtil.sum2(1, 2,3);
Assert.assertEquals(result, 5);
}//故意加入一个错误方法
}
可以发现控制台报错,保持相等的值应该是6,而实际值是5。
三、其他方法
before & after
@Before @After 也是常见的测试框架注解,分别用来在测试开始之前做的事情,和结束之后做的事情。
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import junit.framework.Assert;
public class Calculator {
@Before
public void before() {
System.out.println("测试前的准备工作,比如链接数据库等等");
}
@After
public void after() {
System.out.println("测试结束后的工作,比如关闭链接等等");
}
@Test
public void testSum1() {
int result = SumUtil.sum1(1, 2);
Assert.assertEquals(result, 3);
}
@Test
public void testSum2() {
int result = SumUtil.sum2(1, 2,3);
Assert.assertEquals(result, 5);
}
}
ps:需要import一下
import org.junit.After; import org.junit.Before;
效果如图:
TestSuite
其实就是一下执行多个测试类
先创建需要的测试类
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class Calculator2 {
@Before
public void before() {
System.out.println("测试前的准备工作,比如链接数据库等等");
}
@After
public void after() {
System.out.println("测试结束后的工作,比如关闭链接等等");
}
@Test
public void testSum1() {
int result = SumUtil.sum1(1, 2);
Assert.assertEquals(result, 3);
}
}
TestSuite写法
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({Calculator.class,Calculator2.class})
public class TestSuite {
}
MAVEN中使用JUnit
在pom.xml中中加入dependency依赖包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.3.1</version>
<scope>test</scope>
</dependency>
版本可以根据喜好自定义