您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Junit搭配hamcrest使用
作者:不搞懂算法絕不改名zZ 發(fā)布時(shí)間:[ 2017/5/24 10:06:11 ] 推薦標(biāo)簽:單元測試 Junit

  開篇
  · 快速進(jìn)行軟件編碼,與功能測試應(yīng)該是每個(gè)寫代碼的人,應(yīng)該掌握的技能,如何進(jìn)行優(yōu)雅的寫代碼,把測試的時(shí)間壓縮,騰出時(shí)間來休息。下面聽我一一道來:
  依賴:junit 4.4
  hamcrest 1.3 core hamcrest 1.3 lib
  · 項(xiàng)目結(jié)構(gòu)

  · 選擇測試類,創(chuàng)建測試用例: test case

  · 勾選需要測試的方法

  · 下一步生成測試用例
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.Matchers.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class DateTest2 {
private Date allDate;
private ByteArrayOutputStream bytes;
@Before
public void setUp() throws Exception {
allDate=new Date(5, 18, 2017);
bytes = new ByteArrayOutputStream();
System.setOut(new PrintStream(bytes));
}
@After
public void tearDown() throws Exception {
System.setOut(System.out);
}
@Test
public void testDate() {
Date date=new Date(5, 18, 2017);
assertEquals(true, date instanceof Date);
}
@Test
public void testIncrement() {
allDate.increment();
System.out.println();
assertEquals(6, allDate.getMonth().getMonth());
}
@Test
public void testPrintDate() {
allDate.printDate();
assertThat(bytes.toString(),is("5/18/2017 "));
}
@Test
public void testGetDay() {
fail("Not yet implemented");
}
@Test
public void testGetMonth() {
fail("Not yet implemented");
}
@Test
public void testGetYear() {
fail("Not yet implemented");
}
@Test
public void testEqualsObject() {
fail("Not yet implemented");
}
@Test
public void testToString() {
fail("Not yet implemented");
}
}
  · fail() 方法為測試junit自動(dòng)生成,意味失;下面列舉junit常用測試方法“
  也叫 斷言 使用斷言時(shí)候 ,建議靜態(tài)導(dǎo)入
  ```
  assertEquals(String msg, Object expectRes, Object Res) -------- 用于值判斷
  判斷expectRes.equals(Res) ,表示值等于的判斷,失敗則拋MSG
  assertSame(String msg, Object expectRes, Object Res) -------- 用于地址判斷
  判斷expectRes==Res,表示地址等于的判斷,失敗則拋MSG
  assertTrue(String msg,Boolean result) ----------------------------用于Boolean判斷
  判斷result是true還是false,失敗則拋MSG
  assertNull(String msg,Object result)-------------------------------用于NULL判斷
  判斷result是否為NULL,失敗則拋MSG
  fail(String msg);---------------------------------------------------直接中止方法運(yùn)行
  直接中止方法運(yùn)行,拋出MSG
  ```
  · 每一個(gè)測試方法上@test 為標(biāo)注為junit測試方法 ;
  顯示綠條,意味測試通過


  

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd