首頁技術(shù)文章正文

怎樣使用Spring Boot項(xiàng)目的單元測試?

更新時間:2021-07-05 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班


在實(shí)際開發(fā)中,每當(dāng)完成一個功能接口或業(yè)務(wù)方法的編寫后,通常都會借助單元測試驗(yàn)證該功能是否正確。Spring Boot對項(xiàng)目的單元測試提供了很好的支持,在使用時,需要提前在項(xiàng)目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動器,可以通過相關(guān)注解實(shí)現(xiàn)單元測試。這里,以之前創(chuàng)建的chapter01項(xiàng)目為例對Spring Boot項(xiàng)目的單元測試進(jìn)行使用演示,具體步驟如下。

1.添加spring-boot-starter-test測試依賴啟動器

在項(xiàng)目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動器,示例代碼如下。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
上述代碼中,展示了Spring Boot框架集成單元測試提供的依賴啟動器,其<scope>范圍默認(rèn)為test。需要說明的是,如果是使用Spring Initializr方式搭建的Spring Boot項(xiàng)目,會自動加入spring-boot-starter-test測試依賴啟動器,無需開發(fā)者再手動添加。

2.編寫單元測試類和測試方法

在項(xiàng)目中添加測試依賴啟動器后,可以編寫Spring Boot項(xiàng)目中相關(guān)方法對應(yīng)的單元測試。如果是使用Spring Initializr方式搭建的Spring Boot項(xiàng)目,會在src.test.java測試目錄下自動創(chuàng)建與項(xiàng)目主程序啟動類對應(yīng)的單元測試類。例如,chapter01項(xiàng)目的Chapter01ApplicationTests是自動生成的單元測試類,內(nèi)容如文件1所示。

文件1 Chapter01ApplicationTests.java

     import org.junit.Test;
     import org.junit.runner.RunWith;
     import org.springframework.boot.test.context.SpringBootTest;
     import org.springframework.test.context.junit4.SpringRunner;
     /**
      * 使用Spring Initializr方式自動創(chuàng)建的主程序啟動類對應(yīng)的單元測試類
      */
     @RunWith(SpringRunner.class) // 測試啟動器,并加載Spring Boot測試注解
     @SpringBootTest  // 標(biāo)記為Spring Boot單元測試類,并加載項(xiàng)目的ApplicationContext上下文環(huán)境
     public class Chapter01ApplicationTests {
         // 自動創(chuàng)建的單元測試方法示例
         @Test
         public void contextLoads() {
         }
     }

文件1中,Chapter01ApplicationTests是chapter01項(xiàng)目主程序啟動類對應(yīng)的單元測試類,該類自動生成了一個單元測試方法的示例。第9行代碼的@SpringBootTest注解用于標(biāo)記該類為測試類,并加載項(xiàng)目的ApplicationContext上下文環(huán)境;第8行代碼的@RunWith注解是一個測試類運(yùn)行器,用于加載Spring Boot測試注解@SpringBootTest。

下面,在單元測試類Chapter01ApplicationTests中添加HelloController類中hello()請求控制方法對應(yīng)的單元測試方法,示例代碼如下。

@Autowired
private HelloController helloController;
@Test
public void helloControllerTest() {
    String hello = helloController.hello();
    System.out.println(hello);
}

上述代碼中,先使用@Autowired注解注入了HelloController實(shí)例對象,然后在helloControllerTest()方法中調(diào)用了HelloController類中對應(yīng)的請求控制方法hello(),并輸出打印結(jié)果。

選中單元測試方法helloControllerTest(),鼠標(biāo)右鍵單擊“Run ‘helloControllerTest()’”選項(xiàng)啟動測試方法,此時控制臺的打印信息如圖1所示。

1625472642815_51.jpg

圖1 helloControllerTest()單元測試方法效果

從圖1可以看出,控制臺打印出了“hello Spring Boot”信息,說明了控制類HelloController中編寫的hello()方法正確,并且單元測試方法執(zhí)行成功。








猜你喜歡:

django單元測試:如何執(zhí)行單元測試?

Spring Cloud和Dubbo的區(qū)別是什么?

Spring中如何配置Bean?

黑馬程序員Java開發(fā)培訓(xùn)

分享到:
在線咨詢 我要報名
和我們在線交談!