
Junit简介
JUnit 是一个 Java 编程语言的单元测试框架,由 Erich Gamma 和 Kent Beck 与1997年开发完成。
JUnit是用于编写和运行可重复的自动化测试的开源测试框架,这样可以保证我们的代码按预期工作,JUnit可广泛用于工业和作为支架(从命令行)或IDE(如Eclipse)内单独的Java程序。
JUnit的特点
- JUnit是用于编写和运行测试的开源框架;
- 提供了注释,以确定测试方法;
- 提供断言测试预期结果;
- 提供了测试运行的运行测试;
- JUnit测试让您可以更快地编写代码,提高质量;
- JUnit是优雅简洁。它是不那么复杂以及不需要花费太多的时间;
- JUnit测试可以自动运行,检查自己的结果,并提供即时反馈;
- JUnit测试可以组织成测试套件包含测试案例,甚至其他测试套件;
- Junit显示测试进度的,如果测试是没有问题条形是绿色的,测试失败则会变成红色。
Junit常用注解
首先介绍 Junit 的几种类似于@Test 的注解:
1.@Test
使用该注解标注的public void方法会表示为一个测试方法。
@Test
public void add() {
example test = new example();
assertEquals(5,test.add(1,4));
}
2.@Before
表示在任意使用@Test注解标注的public void方法执行之前执行。
@Before
public void beforeTest(){
System.out.println("test begin");
}
3.@After
表示在任意使用@Test注解标注的public void方法执行之后执行。
@After
public void afterTest(){
System.out.println("test begin");
}
4.@BeforeClass
在类中的任意public static void方法执行之前执行(只执行一次)。
@BeforeClass
public static void runOnceBeforeClass() {
System.out.println("@BeforeClass - runOnceBeforeClass");
}
5.@AfterClass
表示在类中的任意public static void方法执行之后执行。
@AfterClass
public static void runOnceAfterClass() {
System.out.println("@AfterClass - runOnceAfterClass");
}
Junit常用断言
1.assertEquals
断言两个值相等,值可能是类型有 int, short, long, byte, char or java.lang.Object.,第一个参数是一个可选的字符串消息。
@Test
public void test() {
String obj1 = "junit";
String obj2 = "junit";
assertEquals(obj1, obj2);
}
2.assertTrue
断言一个条件为真。
@Test
public void test() {
int var1 = 1;
int var2 = 2;
assertTrue(var1 var2);
}
3.assertNotNull
断言一个对象不为空。
@Test
public void test() {
String obj1 = "junit";
assertNotNull(obj1);
}
同理,assertNull,就是断言对象为空。
4.assertSame
断言,两个对象引用相同的对象。
@Test
public void test() {
String obj3 = "test";
String obj4 = "test";
assertSame(obj3, obj4);
}
同理,assertNotSame,就是两个对象引用不相同的对象。
5.assertArrayEquals
断言预期数组和结果数组相等,数组的类型可能是 int, long, short, char, byte or java.lang.Object。
@Test
public void test() {
int[] arithmetic1 = { 1, 2, 3 };
int[] arithmetic2 = { 1, 2, 3 };
assertArrayEquals(arithmetic1, arithmetic2);
}
Junit使用案例
1.创建被测试类 Calculator
public class Calculator {
//加法
public int add(int a, int b) {
return a + b;
}
}
2.创建测试用例
import com.mikechen.junit.Calculator;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd() {
System.out.println("testAdd执行了!");
Calculator calculator = new Calculator();
int res = calculator.add(1, 2);
//第一个参数值是预期结果,第二个参数是实际结果
Assert.assertEquals(3, res);
}
@Before
public void init() {
System.out.println("init执行了!");
}
@After
public void close() {
System.out.println("close执行了!");
}
}
3.测试运行结果
intit执行了! testAdd执行了! close执行了!
Junit总结
本篇主要讲解了Junit的特点,以及常用注解与测试用例,希望对你了解Junit单元测试有所帮助!
mikechen睿哥
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。