JUnit斷言


在本節中,我們將介紹一些斷言方法。所有這些方法都受到 Assert 類擴充套件了java.lang.Object類並為它們提供編寫測試,以便檢測故障。下表中有一種最常用的斷言方法的更詳細的解釋。

斷言 描述
void assertEquals([String message], expected value, actual value) 斷言兩個值相等。值可能是型別有 int, short, long, byte, char or java.lang.Object. 第一個引數是一個可選的字串訊息
void assertTrue([String message], boolean condition) 斷言一個條件為真
void assertFalse([String message],boolean condition) 斷言一個條件為假
void assertNotNull([String message], java.lang.Object object) 斷言一個物件不為空(null)
void assertNull([String message], java.lang.Object object) 斷言一個物件為空(null)
void assertSame([String message], java.lang.Object expected, java.lang.Object actual) 斷言,兩個物件參照相同的物件
void assertNotSame([String message], java.lang.Object unexpected, java.lang.Object actual) 斷言,兩個物件不是參照同一個物件
void assertArrayEquals([String message], expectedArray, resultArray) 斷言預期陣列和結果陣列相等。陣列的型別可能是 int, long, short, char, byte or java.lang.Object.

 讓我們看的一些前述斷言的一個例子。

AssertionsTest.java

package com.yiibai.junit;

import static org.junit.Assert.*;
import org.junit.Test;

public class AssertionsTest {

	@Test
	public void test() {
		String obj1 = "junit";
		String obj2 = "junit";
		String obj3 = "test";
		String obj4 = "test";
		String obj5 = null;
		int var1 = 1;
		int var2 = 2;
		int[] arithmetic1 = { 1, 2, 3 };
		int[] arithmetic2 = { 1, 2, 3 };

		assertEquals(obj1, obj2);

		assertSame(obj3, obj4);

		assertNotSame(obj2, obj4);

		assertNotNull(obj1);

		assertNull(obj5);

		assertTrue(var1  var2);

		assertArrayEquals(arithmetic1, arithmetic2);
	}

}

在以上類中我們可以看到,這些斷言方法是可以工作的。

  •  assertEquals() 如果比較的兩個物件是相等的,此方法將正常返回;否則失敗顯示在JUnit的視窗測試將中止。
  •  assertSame() 和 assertNotSame() 方法測試兩個物件參照指向完全相同的物件。
  •  assertNull() 和 assertNotNull() 方法測試一個變數是否為空或不為空(null)。
  •  assertTrue() 和 assertFalse() 方法測試if條件或變數是true還是false。
  •  assertArrayEquals() 將比較兩個陣列,如果它們相等,則該方法將繼續進行不會發出錯誤。否則失敗將顯示在JUnit視窗和中止測試。