public class mathDemo {
int area = 0;
public int getArea(int a,int b){
area = a*b;
return area;
}
}
mathDemoTest類的代碼
package UnitDemo;
import UnitDemo.mathDemo;
import org.junit.*;
import static org.junit.Assert.*;
public class mathDemoTest {
mathDemo m = new mathDemo();
@BeforeClass
public static void setUpClass(){
System.out.println(“在當(dāng)前類的所有測(cè)試方法之前執(zhí)行”);
}
@AfterClass
public static void tearDownClass(){
System.out.println(“在當(dāng)前類中的所有測(cè)試方法之后執(zhí)行”);
}
@Before
public void setUp(){
this.m = new mathDemo();
System.out.println(“在每個(gè)測(cè)試方法之前執(zhí)行”);
}
@After
public void tearDown(){
this.m = null;
System.out.println(“在每個(gè)測(cè)試方法之后執(zhí)行”);
}
@Test
public void testgetArea1(){
assertEquals(“這是錯(cuò)誤信息1”,20,m.getArea(4,5));
}
@Test
public void testgetArea2(){
assertEquals(“這是錯(cuò)誤信息2”,12,m.getArea(3,4));
}
}
@Test注解的方法
-
每個(gè)@Test對(duì)應(yīng)一個(gè)方法,這個(gè)方法會(huì)被識(shí)別為一個(gè)測(cè)試方法
-
一個(gè)測(cè)試類里面可以有多個(gè)@Test,但是每個(gè)@Test對(duì)應(yīng)的測(cè)試方法只會(huì)被執(zhí)行一次
通常我們會(huì)在@Test測(cè)試方法中使用assertEquals斷言語句,來判斷方法是否能夠正常運(yùn)行并且輸出我們希望的結(jié)果
assertEquals(“錯(cuò)誤信息”,期望結(jié)果,實(shí)際結(jié)果)
當(dāng)期望結(jié)果與實(shí)際結(jié)果不一致時(shí),就會(huì)打印錯(cuò)誤信息
這是斷言都正確,沒有報(bào)錯(cuò)時(shí)的結(jié)果
但假如我修改一下期望結(jié)果,讓期望結(jié)果與實(shí)際結(jié)果不一致
@Test
public void testgetArea(){
assertEquals(“這是錯(cuò)誤信息1”,20,m.getArea(4,5)); //正確
assertEquals(“這是錯(cuò)誤信息2”,16,m.getArea(3,4)); //錯(cuò)誤
}
這里會(huì)打印之前給定的錯(cuò)誤信息,并且打印詳細(xì)的信息,幫助我們來修改
這里需要說一下這些注解的含義:
@BeforeClass注解的方法,
-
是整個(gè)測(cè)試類開始執(zhí)行的地方,在當(dāng)前類所有的測(cè)試方法之前被執(zhí)行。
-
是靜態(tài)方法
-
用來初始化一些繁瑣耗時(shí)的資源,比如創(chuàng)建數(shù)據(jù)庫。
@AfterClass注解的方法,
-
是整個(gè)測(cè)試類完成之后執(zhí)行的操作,在當(dāng)前類中的所有測(cè)試方法之后執(zhí)行。
-
是靜態(tài)方法
-
用來清理@BeforeClass部分初始化的資源
注意,這兩個(gè)都是Junit4的寫法,在Junit5中,這兩個(gè)分別叫@BeforeAll與@AfterAll
@Before注解的方法
-
在每個(gè)測(cè)試方法之前執(zhí)行。
-
是非靜態(tài)的方法
-
用來初始化類的對(duì)象或者類的屬性
@After注解的方法
-
在每個(gè)測(cè)試方法之后執(zhí)行
-
是非靜態(tài)的方法
-
用來清理@Before部分初始化的對(duì)象或者屬性
注意,這兩個(gè)都是Junit4的寫法,在Junit5中,這兩個(gè)分別叫@BeforeEach與@AfterEach
@Before與@After會(huì)在每一個(gè)被@Test注解的測(cè)試方法的前后,被自動(dòng)執(zhí)行
@Before
public void setUp(){
this.m = new mathDemo();
System.out.println(“在每個(gè)測(cè)試方法之前執(zhí)行”);
}
@Test
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Java開發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Java開發(fā)知識(shí)點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!
如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲取?。。▊渥ava獲?。?/strong>

讀者福利
由于篇幅過長,就不展示所有面試題了,感興趣的小伙伴
更多筆記分享文章來源:http://www.zghlxwxcb.cn/news/detail-858610.html
《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實(shí)戰(zhàn)項(xiàng)目源碼講義》點(diǎn)擊傳送門即可獲??!
7)]
[外鏈圖片轉(zhuǎn)存中…(img-VYbtaxcE-1713138283987)]
[外鏈圖片轉(zhuǎn)存中…(img-Fkocku2K-1713138283987)]
更多筆記分享
[外鏈圖片轉(zhuǎn)存中…(img-lp3uzQRU-1713138283987)]
《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實(shí)戰(zhàn)項(xiàng)目源碼講義》點(diǎn)擊傳送門即可獲?。?/strong>文章來源地址http://www.zghlxwxcb.cn/news/detail-858610.html
到了這里,關(guān)于Java學(xué)習(xí)筆記——單元測(cè)試(JUnit框架)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!