<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 類加載器 類加載器就加載字節碼文件(.class) ![](https://box.kancloud.cn/5c85e2b3157c3553ceb7787b24ef4f7e_803x299.jpg) ## 類加載器的種類 類加載器有三種,不同類加載器加載不同的 ![](https://box.kancloud.cn/10caa57d3d833c89a6f255ede198aa7b_622x268.jpg) 1)BootStrap:引導類加載器:加載都是最基礎的文件 2)ExtClassLoader:擴展類加載器:加載都是基礎的文件 3)AppClassLoader:應用類加載器:三方jar包和自己編寫java文件 怎么獲得類加載器? ClassLoader 字節碼對象.getClassLoader(); ~~~ //獲得Demo字節碼文件的類加載器 Class clazz = Demo.class;//獲得Demo的字節碼對象 ClassLoader classLoader = clazz.getClassLoader();//獲得類加載器 //getResource的參數路徑相對classes(src) //獲得classes(src)下的任何的資源 String path = classLoader.getResource("com/wdsa/classloader/jdbc.properties").getPath(); //classLoader.getResourceAsStream(""); System.out.println(path); ~~~ # 注解 # # junit4注解 ~~~ /* * @Test:將一個普通方法修飾為一個測試方法 * @Test(exception=XXX.class) * @Test(time=毫秒) * @BeforeClass:它會在所有的測試方法前被執行,static修飾 * @AfterClass:它會在所有的測試方法后被執行,static修飾 * @Before:它會在每一個測試方法前被執行一次 * @After:它會在每一個測試方法后被執行一次 * @Ignore:省略 * @RunWith:修改運行器org。junit。runner。Runner * * */ ~~~ 其實@Test不僅可以修飾一個普通方法為測試方法,還可以獲取異常或者控制測試方法的執行時間 ## @Test的功能 A,獲取異常 B,控制測試代碼執行時間 A,獲取異常代碼展示 1,獲取異常,對異常的捕獲:@Test(expected=XXX.class) ~~~ package com.duo.util; import static org.junit.Assert.*; import org.junit.Test; public class Anotation { @Test(expected=ArithmeticException.class) public void testDivide(){ assertEquals(4, new Calculate().divide(12, 0)); } } ~~~ 運行后結果 ![](https://box.kancloud.cn/49e4d8fd2fe92e3899b29b82aff6af7d_469x333.png) 2. 沒有通過@Test(expected=ArithmeticException.class)注解時代碼以及結果: ~~~ package com.duo.util; import static org.junit.Assert.*; import org.junit.Test; public class Anotation { @Test public void testDivide(){ assertEquals(4, new Calculate().divide(12, 0)); } } ~~~ 運行結果 ![](https://box.kancloud.cn/685b5046e3befec802fe0ba2b702d07b_459x419.png) B,控制測試代碼執行時間,代碼展示 測試方法控制@Test(timeout=毫秒),主要是針對代碼中有循環代碼的測試控制或者超時運行不符合預期的判定 1,我們使用對一個死循環進行測試: ~~~ package com.duo.util; import static org.junit.Assert.*; import org.junit.Test; public class Anotation { @Test(timeout=2000) public void testWhile(){ while(true){ System.out.println("run forever..."); } } } ~~~ 結果及時運行2秒后系統自動停止運行; 2,讓當前線程運行2000毫秒,測試代碼運行3000毫秒,符合預期結果 ~~~ package com.duo.util; import static org.junit.Assert.*; import org.junit.Test; public class Anotation { @Test(timeout=3000) public void testReadFile(){ try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ~~~ 運行結果通過; 也可以通過調整測試時間比線程時間小,測試不符合預期的場景; 三,Ignore注解(該注解可以忽略當前的運行的方法,有時候改測試方法沒有實現或者以后再實現) ~~~ package com.duo.util; import static org.junit.Assert.*; import org.junit.Ignore; import org.junit.Test; public class Anotation { @Test(expected=ArithmeticException.class) public void testDivide(){ assertEquals(4, new Calculate().divide(12, 0)); } @Ignore @Test(timeout=2000) public void testWhile(){ while(true){ System.out.println("run forever..."); } } @Test(timeout=3000) public void testReadFile(){ try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ~~~ 運行結果 ![](https://box.kancloud.cn/1eeaf7b00e804bf659bffa8c71ee3203_679x174.png) 四,RunWith,可以修改測試運行器:org.junit.runner.Runner(后面使用到再解釋) 五,斷言:assert 斷言assert的好多方法可以直接使用,主要是使用了靜態導入:import static org.junit.Assert.*;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看