新聞中心
斷言
所有的斷言都包含在 Assert 類中

成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。
public class Assert extends java.lang.Object這個(gè)類提供了很多有用的斷言方法來編寫測(cè)試用例。只有失敗的斷言才會(huì)被記錄。Assert 類中的一些有用的方法列式如下:
| 序號(hào) | 方法和描述 |
|---|---|
| 1 | void assertEquals(boolean expected, boolean actual) 檢查兩個(gè)變量或者等式是否平衡 |
| 2 | void assertTrue(boolean condition) 檢查條件為真 |
| 3 | void assertFalse(boolean condition) 檢查條件為假 |
| 4 | void assertNotNull(Object object) 檢查對(duì)象不為空 |
| 5 | void assertNull(Object object) 檢查對(duì)象為空 |
| 6 | void assertSame(Object expected, Object actual) assertSame() 方法檢查兩個(gè)相關(guān)對(duì)象是否指向同一個(gè)對(duì)象 |
| 7 | void assertNotSame(Object expected, Object actual) assertNotSame() 方法檢查兩個(gè)相關(guān)對(duì)象是否不指向同一個(gè)對(duì)象 |
| 8 | void assertArrayEquals(expectedArray, resultArray) assertArrayEquals() 方法檢查兩個(gè)數(shù)組是否相等 |
下面我們?cè)诶又性囼?yàn)一下上面提到的各種方法。在 C:\ > JUnit_WORKSPACE 路徑下創(chuàng)建一個(gè)文件名為 TestAssertions.java 的類
import org.junit.Test;
import static org.junit.Assert.*;
public class TestAssertions {
@Test
public void testAssertions() {
//test data
String str1 = new String ("abc");
String str2 = new String ("abc");
String str3 = null;
String str4 = "abc";
String str5 = "abc";
int val1 = 5;
int val2 = 6;
String[] expectedArray = {"one", "two", "three"};
String[] resultArray = {"one", "two", "three"};
//Check that two objects are equal
assertEquals(str1, str2);
//Check that a condition is true
assertTrue (val1 < val2);
//Check that a condition is false
assertFalse(val1 > val2);
//Check that an object isn't null
assertNotNull(str1);
//Check that an object is null
assertNull(str3);
//Check if two object references point to the same object
assertSame(str4,str5);
//Check if two object references not point to the same object
assertNotSame(str1,str3);
//Check whether two arrays are equal to each other.
assertArrayEquals(expectedArray, resultArray);
}
}接下來,我們?cè)?C:\ > JUNIT_WORKSPACE 路徑下創(chuàng)建一個(gè)文件名為 TestRunner.java 的類來執(zhí)行測(cè)試用例
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner2 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestAssertions.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
} 用 javac 編譯 Test case 和 Test Runner 類
C:\JUNIT_WORKSPACE>javac TestAssertions.java TestRunner.java
現(xiàn)在運(yùn)行將會(huì)運(yùn)行 Test Case 類中定義和提供的測(cè)試案例的 Test Runner
C:\JUNIT_WORKSPACE>java TestRunner檢查運(yùn)行結(jié)果
true
注解
注解就好像你可以在你的代碼中添加并且在方法或者類中應(yīng)用的元標(biāo)簽。JUnit 中的這些注解為我們提供了測(cè)試方法的相關(guān)信息,哪些方法將會(huì)在測(cè)試方法前后應(yīng)用,哪些方法將會(huì)在所有方法前后應(yīng)用,哪些方法將會(huì)在執(zhí)行中被忽略。
JUnit 中的注解的列表以及他們的含義:
| 序號(hào) | 注解和描述 |
|---|---|
| 1 | @Test 這個(gè)注解說明依附在 JUnit 的 public void 方法可以作為一個(gè)測(cè)試案例。 |
| 2 | @Before 有些測(cè)試在運(yùn)行前需要?jiǎng)?chuàng)造幾個(gè)相似的對(duì)象。在 public void 方法加該注解是因?yàn)樵摲椒ㄐ枰?test 方法前運(yùn)行。 |
| 3 | @After 如果你將外部資源在 Before 方法中分配,那么你需要在測(cè)試運(yùn)行后釋放他們。在 public void 方法加該注解是因?yàn)樵摲椒ㄐ枰?test 方法后運(yùn)行。 |
| 4 | @BeforeClass 在 public void 方法加該注解是因?yàn)樵摲椒ㄐ枰陬愔兴蟹椒ㄇ斑\(yùn)行。 |
| 5 | @AfterClass 它將會(huì)使方法在所有測(cè)試結(jié)束后執(zhí)行。這個(gè)可以用來進(jìn)行清理活動(dòng)。 |
| 6 | @Ignore 這個(gè)注解是用來忽略有關(guān)不需要執(zhí)行的測(cè)試的。 |
在 C:\ > JUNIT_WORKSPACE 路徑下創(chuàng)建一個(gè)文件名為 JunitAnnotation.java 的類來測(cè)試注解
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 JunitAnnotation {
//execute before class
@BeforeClass
public static void beforeClass() {
System.out.println("in before class");
}
//execute after class
@AfterClass
public static void afterClass() {
System.out.println("in after class");
}
//execute before test
@Before
public void before() {
System.out.println("in before");
}
//execute after test
@After
public void after() {
System.out.println("in after");
}
//test case
@Test
public void test() {
System.out.println("in test");
}
//test case ignore and will not execute
@Ignore
public void ignoreTest() {
System.out.println("in ignore test");
}
}接下來,我們?cè)?C:\ > JUNIT_WORKSPACE 路徑下創(chuàng)建一個(gè)文件名為 TestRunner.java 的類來執(zhí)行注解
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(JunitAnnotation.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
} 用 javac 編譯 Test case 和 Test Runner 類
C:\JUNIT_WORKSPACE>javac TestAssertions.java TestRunner.java現(xiàn)在運(yùn)行將會(huì)運(yùn)行 Test Case 類中定義和提供的測(cè)試案例的 Test Runner
C:\JUNIT_WORKSPACE>java TestRunner檢查運(yùn)行結(jié)果
in before class
in before
in test
in after
in after class
true
網(wǎng)站題目:創(chuàng)新互聯(lián)JUint教程:JUnit-使用斷言
文章位置:http://www.5511xx.com/article/dpceghd.html


咨詢
建站咨詢
