SpringBoot-單元測試


SpringBoot-單元測試

SpringBoot-單元測試

在SpringBoot中提供了單元測試的組件,它類似於Spring中的單元測試,無需加載配置文件,即可從容器中獲取對象的實例。

首先在pom文件中導入以下依賴:

<!--springboot程序測試依賴,如果是自動創建項目默認添加-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

然后在test文件夾中創建測試類,在測試類上加上如下注解:

@Runwith(SpringRunner.class)
@SpringBootTest(classes=Application.class)

在該類中就可以使用@Autowired和@Test進行測試

packagecn.rayfoo.demo;

importcn.rayfoo.Application;
importcn.rayfoo.config.JDBCProperties;
importorg.junit.jupiter.api.Test;
importorg.junit.runner.RunWith;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
importorg.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
classDemoApplicationTests{

   @Autowired
   privateJDBCPropertiesjdbcProperties;

   @Test
   voidcontextLoads() {
       System.out.println(jdbcProperties);
  }

}

當然,我們還可以使用@After@Before注解

Junit基本注解介紹

@BeforeClass 在所有測試方法前執行一次,一般在其中寫上整體初始化的代碼

@AfterClass 在所有測試方法后執行一次,一般在其中寫上銷毀和釋放資源的代碼

@Before 在每個測試方法前執行,一般用來初始化方法(比如我們在測試別的方法時,類中與其他測試方法共享的值已經被改變,為了保證測試結果的有效性,我們會在@Before注解的方法中重置數據)

@After 在每個測試方法后執行,在方法執行完成后要做的事情

@Test(timeout = 1000) 測試方法執行超過1000毫秒后算超時,測試將失敗

@Test(expected = Exception.class) 測試方法期望得到的異常類,如果方法執行沒有拋出指定的異常,則測試失敗

@Ignore(“not ready yet”) 執行測試時將忽略掉此方法,如果用於修飾類,則忽略整個類

@Test 編寫一般測試用例

@RunWith 在JUnit中有很多個Runner,他們負責調用你的測試代碼,每一個Runner都有各自的特殊功能,你要根據需要選擇不同的Runner來運行你的測試代碼。

如果我們只是簡單的做普通Java測試,不涉及Spring Web項目,你可以省略@RunWith注解,這樣系統會自動使用默認Runner來運行你的代碼。

以上就是我們再SpringBoot2.X 中的測試過程示例( 當然也是用 SpringBoot 1.X ),是不是可以說 so easy?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM