今天學(xué)習(xí)Spring Boot時(shí)豹缀,使用MockMvc對(duì)Controller進(jìn)行單元測(cè)試陨界,發(fā)現(xiàn)無法導(dǎo)入equalTo()顿痪。
考慮可能是沒有導(dǎo)入方法镊辕,但是IntelliJ IDEA沒有出現(xiàn)導(dǎo)入方法的提示油够,無法自動(dòng)補(bǔ)全。在網(wǎng)上找到解決方法如下:
版權(quán)聲明:本文為博主原創(chuàng)文章征懈,禁止轉(zhuǎn)載
作者博客:codesong.cn
updated: 2019-10-22 10:13:14
導(dǎo)入方法:
import static org.hamcrest.Matchers.equalTo;
代碼功能為:controller類中在http://localhost:8080/hello輸出"Hello World"石咬,在測(cè)試代碼中,使用MockMvc實(shí)現(xiàn)對(duì)HTTP請(qǐng)求的模擬卖哎,驗(yàn)證controller層是否正確鬼悠。
代碼功能十分簡(jiǎn)單,只是為了測(cè)試MockMvc的使用亏娜,具體如下:
Controller類代碼:
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
測(cè)試類代碼:
import com.example.demo.controller.HelloWorldController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo; //此處應(yīng)導(dǎo)入equalTo方法
mport static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloWorldTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World"))); //使用equalTo方法
System.out.println("Test End");
}
}
測(cè)試結(jié)果如下
MockMvc測(cè)試結(jié)果