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单元测试有所帮助!