97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

自助外貿(mào)網(wǎng)站制作百度網(wǎng)站ip地址

鶴壁市浩天電氣有限公司 2026/01/22 06:32:14
自助外貿(mào)網(wǎng)站制作,百度網(wǎng)站ip地址,品牌設(shè)計公司簡介,wordpress免費國內(nèi)主題JUnit4 測試生命周期詳解 概述 理解JUnit4測試生命周期是編寫有效單元測試的關(guān)鍵。本文件詳細說明測試的執(zhí)行流程、實例化策略、注解執(zhí)行順序等核心概念。 1. 測試生命周期總覽 完整的測試執(zhí)行流程圖 ┌────────────────────────────────…JUnit4 測試生命周期詳解概述理解JUnit4測試生命周期是編寫有效單元測試的關(guān)鍵。本文件詳細說明測試的執(zhí)行流程、實例化策略、注解執(zhí)行順序等核心概念。1. 測試生命周期總覽完整的測試執(zhí)行流程圖┌─────────────────────────────────────────────────────┐│ 測試類加載 │├─────────────────────────────────────────────────────┤│ @BeforeClass 方法執(zhí)行 ││ (整個類生命周期只執(zhí)行一次) │├─────────────────────────────────────────────────────┤│ ││ 對于每個@Test方法: ││ ┌─────────────────────────────────────────────┐ ││ │創(chuàng)建新的測試實例│ ││ ├─────────────────────────────────────────────┤ ││ │ @Before 方法執(zhí)行 │ ││ ├─────────────────────────────────────────────┤ ││ │ @Test 方法執(zhí)行 │ ││ ├─────────────────────────────────────────────┤ ││ │ 可能執(zhí)行:@Test(expected) │ ││ │ 可能執(zhí)行:@Test(timeout) │ ││ ├─────────────────────────────────────────────┤ ││ │ @After 方法執(zhí)行 │ ││ │ (即使@Test拋出異常也會執(zhí)行) │ ││ └─────────────────────────────────────────────┘ ││ │├─────────────────────────────────────────────────────┤│ @AfterClass 方法執(zhí)行 ││ (整個類生命周期只執(zhí)行一次) │└─────────────────────────────────────────────────────┘2. 測試類實例化策略2.1 默認行為:每個測試方法一個實例JUnit4默認情況下為每個@Test方法創(chuàng)建新的測試實例importorg.junit.Before;importorg.junit.Test;importstaticorg.junit.Assert.*;publicclassTestInstancePerMethodTest{privateintinstanceCounter=0;publicTestInstancePerMethodTest(){System.out.println("構(gòu)造函數(shù)被調(diào)用,創(chuàng)建新實例");instanceCounter=0;// 每次創(chuàng)建新實例時重置}@BeforepublicvoidsetUp(){instanceCounter++;System.out.println("setUp() 執(zhí)行,instanceCounter: "+instanceCounter);}@TestpublicvoidtestMethod1(){System.out.println("testMethod1 執(zhí)行,instanceCounter: "+instanceCounter);// 這個實例的instanceCounter是1assertEquals(1,instanceCounter);}@TestpublicvoidtestMethod2(){System.out.println("testMethod2 執(zhí)行,instanceCounter: "+instanceCounter);// 新的實例,所以instanceCounter也是1assertEquals(1,instanceCounter);}}/* 輸出示例: 構(gòu)造函數(shù)被調(diào)用,創(chuàng)建新實例 setUp() 執(zhí)行,instanceCounter: 1 testMethod1 執(zhí)行,instanceCounter: 1 構(gòu)造函數(shù)被調(diào)用,創(chuàng)建新實例 setUp() 執(zhí)行,instanceCounter: 1 testMethod2 執(zhí)行,instanceCounter: 1 */2.2 驗證不同實例publicclassDifferentInstancesTest{privateintinstanceId=(int)(Math.random()*1000);@TestpublicvoidtestInstance1(){System.out.println("testInstance1 - instanceId: "+instanceId);// 保存當前實例IDintcurrentId=instanceId;// 修改實例變量instanceId=999;// 驗證修改只影響當前實例assertEquals(999,instanceId);// 在其他測試中這個修改不會生效}@TestpublicvoidtestInstance2(){System.out.println("testInstance2 - instanceId: "+instanceId);// 這是一個新的實例,所以instanceId是新的隨機值// 不是999!assertNotEquals(999,instanceId);}}2.3 為什么每個測試方法創(chuàng)建新實例?設(shè)計目的:測試隔離:確保測試之間不會相互影響線程安全:每個測試在獨立的實例上運行狀態(tài)重置:避免測試間的狀態(tài)污染3. 注解執(zhí)行順序詳解3.1 完整的執(zhí)行順序BeforeClass{構(gòu)造函數(shù)BeforeTestAfter} * NAfterClassimportorg.junit.*;publicclassFullLifecycleTest{// ===== 類級別生命周期 =====@BeforeClasspublicstaticvoidbeforeClass(){System.out.println("1. @BeforeClass - 類級別初始化");}@AfterClasspublicstaticvoidafterClass(){System.out.println("9. @AfterClass - 類級別清理");}// ===== 實例級別生命周期 =====@Beforepublicvoidbefore(){System.out.println(" 3. @Before - 測試方法前執(zhí)行");}@Afterpublicvoidafter(){System.out.println(" 5. @After - 測試方法后執(zhí)行");}// ===== 測試方法 =====@TestpublicvoidtestOne(){System.out.println(" 4. @Test testOne 執(zhí)行");}@TestpublicvoidtestTwo(){System.out.println(" 4. @Test testTwo 執(zhí)行");}// ===== 構(gòu)造函數(shù) =====publicFullLifecycleTest(){System.out.println("2. 構(gòu)造函數(shù) - 創(chuàng)建測試實例");}}/** * 1. @BeforeClass - 類級別初始化 * 2. 構(gòu)造函數(shù) - 創(chuàng)建測試實例 * 3. @Before - 測試方法前執(zhí)行 * 4. @Test testOne 執(zhí)行 * 5. @After - 測試方法后執(zhí)行 * 2. 構(gòu)造函數(shù) - 創(chuàng)建測試實例 * 3. @Before - 測試方法前執(zhí)行 * 4. @Test testTwo 執(zhí)行 * 5. @After - 測試方法后執(zhí)行 * 9. @AfterClass - 類級別清理 */3.2 異常情況下的生命周期場景1:@Before拋出異常@Before異常了,@After還是會執(zhí)行的,只不過@Test不會執(zhí)行了publicclassExceptionInBeforeTest{@BeforepublicvoidsetUp(){System.out.println("@Before 執(zhí)行");thrownewRuntimeException("@Before 中發(fā)生異常");}@AfterpublicvoidtearDown(){System.out.println("@After 執(zhí)行");}@TestpublicvoidtestMethod(){System.out.println("測試方法執(zhí)行");fail("這個測試不應(yīng)該執(zhí)行");}}/* 輸出: @Before 執(zhí)行 @After 執(zhí)行 結(jié)果:測試失敗,@Test方法不會執(zhí)行,但@After仍然執(zhí)行 */場景2:@Test拋出異常即使@Test報錯了,@After還是會執(zhí)行的publicclassExceptionInTestTest{@BeforepublicvoidsetUp(){System.out.println("@Before 執(zhí)行");}@AfterpublicvoidtearDown(){System.out.println("@After 執(zhí)行(即使@Test拋出異常)");}@Test(expected=RuntimeException.class)publicvoidtestWithExpectedException(){System.out.println("拋出期望的異常");thrownewRuntimeException("測試異常");}@TestpublicvoidtestWithUnexpectedException(){System.out.println("拋出未期望的異常");thrownewRuntimeException("意外異常");}}/* 第一個測試輸出: @Before 執(zhí)行 拋出期望的異常 @After 執(zhí)行(即使@Test拋出異常) 結(jié)果:測試通過(因為異常符合expected) 第二個測試輸出: @Before 執(zhí)行 拋出未期望的異常 @After 執(zhí)行(即使@Test拋出異常) 結(jié)果:測試失?。ㄎ雌谕漠惓#?*/場景3:@After拋出異常publicclassExceptionInAfterTest{@TestpublicvoidtestSuccess(){System.out.println("測試成功執(zhí)行");}@TestpublicvoidtestFailure(){System.out.println("測試失敗執(zhí)行");fail(
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請聯(lián)系我們進行投訴反饋,一經(jīng)查實,立即刪除!

增強網(wǎng)站互動河南省建設(shè)廳舉報網(wǎng)站

增強網(wǎng)站互動,河南省建設(shè)廳舉報網(wǎng)站,外貿(mào)網(wǎng)站宗旨,那個網(wǎng)站教做仙芋鮮5個必學(xué)技巧#xff1a;用MegSpot輕松搞定圖片視頻對比分析 【免費下載鏈接】MegSpot MegSpot是一款高效、專業(yè)、

2026/01/21 15:32:01

做視頻網(wǎng)站可行嗎模板網(wǎng)站下載

做視頻網(wǎng)站可行嗎,模板網(wǎng)站下載,鄭州公司建站模板,網(wǎng)站申請域名博主介紹#xff1a;??碼農(nóng)一枚 #xff0c;專注于大學(xué)生項目實戰(zhàn)開發(fā)、講解和畢業(yè)#x1f6a2;文撰寫修改等。全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者#x

2026/01/21 18:40:01

普陀企業(yè)網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化營銷

普陀企業(yè)網(wǎng)站建設(shè),關(guān)鍵詞優(yōu)化營銷,積極加強網(wǎng)站建設(shè),承接網(wǎng)站建設(shè)文案Excalidraw內(nèi)存占用優(yōu)化技巧 在現(xiàn)代遠程協(xié)作日益頻繁的背景下#xff0c;可視化工具已成為團隊溝通、產(chǎn)品設(shè)計和技術(shù)架構(gòu)討論的

2026/01/21 12:50:02