⑥Junit斷言簡(jiǎn)介:(都繼承自Assert超類)
|- assertEquals(a, b)
Asserts that two primitive values are equal.
測(cè)試a是否等于b(a和b是原始類型數(shù)值(primitive value)或者必須為實(shí)現(xiàn)比較而具有equal方法)
|- assertFalse(a)
Asserts that a condition (a) is false.
測(cè)試a是否為false(假),a是一個(gè)Boolean數(shù)值。
|- assertTrue(a)
Asserts that a condition is true.
測(cè)試a是否為true(真),a是一個(gè)Boolean數(shù)值
|- assertNotNull(a)
Asserts that an object isn't null.
測(cè)試a是否非空,a是一個(gè)對(duì)象或者null。
|- assertNull(a)
Asserts that an object is null.
測(cè)試a是否為null,a是一個(gè)對(duì)象或者null。
|- assertNotSame(a, b)
Asserts that two objects do not refer to the same object.
測(cè)試a和b是否沒有都引用同一個(gè)對(duì)象。
|- assertSame(a, b)
Asserts that two objects refer to the same object.
測(cè)試a和b是否都引用同一個(gè)對(duì)象。
|- fail(message)
當(dāng)程序錯(cuò)誤時(shí)候,輸出錯(cuò)誤消息
|-自定義斷言
通常而言,JUnit所提供的標(biāo)準(zhǔn)斷言對(duì)大多數(shù)測(cè)試已經(jīng)足夠了。然而,在某些環(huán)境下,我們可能更需要自定義一些斷言來滿足我們的需要。
通常的做法是定義一個(gè)TestCase的子類,并且使用這個(gè)子類來滿足所有的測(cè)試。新定義的共享的斷言或者公共代碼放到這個(gè)子類中。
⑦ Junit佳實(shí)踐:
|- 一次只有一個(gè)測(cè)試對(duì)象:(當(dāng)無法預(yù)計(jì)這些對(duì)象發(fā)生改變時(shí)不會(huì)造成相互影響)
|- 選擇有一個(gè)的測(cè)試方法名:testXxx命名模式(Xxx為待測(cè)方法)。若在同一個(gè)方法增添其他測(cè)試testXxxYyy的命名模式
|- Assert調(diào)用總解釋失敗原因。第一個(gè)參數(shù)務(wù)必為描述文本
|- setUp方法用來實(shí)例化DefaultController. Junit會(huì)在調(diào)用其他之前調(diào)用
|- 一個(gè)單元測(cè)試等于一個(gè)測(cè)試方法(簡(jiǎn)介、專注)
|- 測(cè)試任何可能失敗的事務(wù)
|- 讓測(cè)試改善代碼
編寫單元測(cè)試常常有助有你寫出更好的代碼。理由很簡(jiǎn)單:test case是你代碼的用戶只有在使用代碼時(shí)才能發(fā)現(xiàn)代碼的缺點(diǎn)。所以,不要猶豫,應(yīng)當(dāng)根據(jù)測(cè)試時(shí)發(fā)現(xiàn)的不使之處重構(gòu)代碼,使其易于使用。測(cè)試驅(qū)動(dòng)開發(fā)(TDD)的實(shí)踐依賴于這條原則。通過先編寫測(cè)試,你可以從黛米用戶的角度來開發(fā)你的類。
|- 讓異常測(cè)試易懂。把case塊中異常變量命名為expected
|- 同一個(gè)包,分離目錄
3.軟件測(cè)試類型分為四類:(集成測(cè)試、功能測(cè)試、壓力/負(fù)荷測(cè)試、驗(yàn)收測(cè)試)