您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > junit
Junit使用筆記
作者:wangmin 發(fā)布時(shí)間:[ 2016/6/8 16:43:57 ] 推薦標(biāo)簽:單元測(cè)試 Junit

  Junit的所有測(cè)試方法都是以@Test修飾,以public void 開(kāi)頭。如下:
  @Test
  public void testAdd() {
  assertEquals(0, new Calculate().add(0, 1));
  }
  @BeforeClass && @AfterClass 都是只會(huì)執(zhí)行一次,@BeforeClass是在類加載的時(shí)候執(zhí)行,@AfterClass 是整個(gè)類結(jié)束的時(shí)候被執(zhí)行,整個(gè)方法是一個(gè)靜態(tài)方法。
  @BeforeClass
  public static void setUpBeforeClass() throws Exception {
  System.out.println("before class");
  }
  @AfterClass
  public static void tearDownAfterClass() throws Exception {
  System.out.println("after class");
  }
  @Before && @After兩個(gè)方法是在每個(gè)測(cè)試方法執(zhí)行的執(zhí)行都會(huì)被執(zhí)行,@Before是在方法執(zhí)行前執(zhí)行,@After是在方法執(zhí)行結(jié)束后執(zhí)行。
  @Before
  public void setUp() throws Exception {
  System.out.println("before");
  }
  @After
  public void tearDown() throws Exception {
  System.out.println("after");
  }
  @Ignore 所修飾的測(cè)試方法會(huì)被測(cè)試運(yùn)行器忽略,例如以下的test1方法會(huì)被測(cè)試運(yùn)行器忽略執(zhí)行。
  @Ignore
  @Test
  public void test1() {
  System.out.println("test1");
  }
  @Test(timeout=毫秒),用來(lái)指定時(shí)間上限,如果這個(gè)測(cè)試方法的執(zhí)行時(shí)間超過(guò)了這個(gè)時(shí)間值則測(cè)試失敗。
  // 會(huì)執(zhí)行失敗,因?yàn)閟leep的時(shí)間長(zhǎng)于設(shè)定的timeout時(shí)間
  @Test(timeout=1000)
  public void test() {
  try {
  Thread.sleep(2000);
  } catch (InterruptedException e) {
  e.printStackTrace();
  }
  }
  @Test(expected=異常類),用expected來(lái)指定應(yīng)該拋出的異常,如果在執(zhí)行過(guò)程中沒(méi)有拋出異;蛘邟伋龅漠惓2皇侵付ǖ漠惓,則測(cè)試失敗。
  // 這個(gè)測(cè)試案例會(huì)執(zhí)行成功,因?yàn)橹付ǖ漠惓J浅绦蛞獟伋龅漠惓?br />   @Test(expected=IndexOutOfBoundsException.class)
  public void outOfBounds()
  {
  new ArrayList<Object>().get(1);
  }
  測(cè)試套件是組織所要測(cè)試的類一起運(yùn)行,如果單個(gè)類單獨(dú)的運(yùn)行是比較麻煩的,可以使用測(cè)試套件一起運(yùn)行這些測(cè)試類。需要注意的是:
  測(cè)試套件的類是不包含其他任何方法
  同時(shí)要更改測(cè)試運(yùn)行器為Suite.class
  將要測(cè)試的類作為數(shù)組傳入到SuiteClasses({})中
  // 更改測(cè)試運(yùn)行器以及將要測(cè)試的類放入SuiteClasses中
  @RunWith(Suite.class)
  @SuiteClasses({ AppTest.class, CalculateTest.class, JunitFlowTest.class })
  public class AllTests {
  // 沒(méi)有測(cè)試方法
  }
  

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