Spring Boot Test 簡介
Spring Boot提供了大量的實(shí)用的注解來幫助我們測試程序赡突。針對測試支持由兩個(gè)模塊提供涕烧,spring-boot-test
包含核心項(xiàng)目咖气,而spring-boot-test-autoconfigure
支持測試的自動(dòng)配置挨措。
大多數(shù)開發(fā)人員只使用spring-boot-starter-test
即可,它會(huì)導(dǎo)入兩個(gè)Spring Boot測試模塊以及JUnit崩溪,AssertJ浅役,Hamcrest和一些其他有用的庫。
搭建測試環(huán)境
? 基于上文中的例子伶唯,我們來搭建測試環(huán)境觉既。
1、在pom.xml
文件中乳幸,添加spring-boot-starter-test
的依賴瞪讼,它包含了一系列的測試庫(JUnit?、Spring Test 反惕、AssertJ?尝艘、Hamcrest、Mockito?姿染、JSONassert?背亥、JsonPath?)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2悬赏、我們簡單的先針對Controller層進(jìn)行單元測試狡汉。測試Spring MVC只需在對應(yīng)的測試類上添加@WebMvcTest
注解即可。由于是基于Spring Test環(huán)境下的單元測試闽颇,請不要忘記添加@RunWith(SpringRunner.class)
注解盾戴。
在test\java\com\jason\web
目錄下新建IndexControllerTest.java
文件。
package com.jason.web;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@WebMvcTest(IndexController.class)
public class IndexControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void testIndex() throws Exception {
this.mvc.perform(get("/index").accept(MediaType.TEXT_PLAIN))
.andExpect(status().isOk()).andExpect(content().string("Hello, Spring Boot!"));
}
}
3兵多、運(yùn)行IndexControllerTest.java
中的testIndex()
方法尖啡,即可看到測試結(jié)果。
本文示例程序請點(diǎn)此獲取剩膘。
詳細(xì)資料請參考Spring Boot官網(wǎng)衅斩。