一、测试接口
可以通过单元测试来测试我们的接口是否正常工作, 单元测试放置于 src\test 下ReqTests.java
import com.example.hello.controller.HelloController;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.result.MockMvcResultHandlers;import org.springframework.test.web.servlet.result.MockMvcResultMatchers;import org.springframework.test.web.servlet.setup.MockMvcBuilders;@RunWith(SpringRunner.class)@SpringBootTestpublic class HelloTests {@Testpublic void contextLoads() {}private MockMvc mvc;@Beforepublic void setUp() throws Exception {mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();}@Testpublic void getHello() throws Exception {mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}}
如果通过测试, 控制台将打印出信息:
MockHttpServletRequest:HTTP Method = GETRequest URI = /Parameters = {}Headers = [Accept:"application/json"]Body = <no character encoding set>Session Attrs = {}Handler:Type = com.example.demo.controller.HelloControllerMethod = public java.lang.String com.example.demo.controller.HelloController.index()Async:Async started = falseAsync result = nullResolved Exception:Type = nullModelAndView:View name = nullView = nullModel = nullFlashMap:Attributes = nullMockHttpServletResponse:Status = 200Error message = nullHeaders = [Content-Type:"application/json;charset=utf-8", Content-Length:"19"]Content type = application/json;charset=utf-8Body = Hello Spring Boot !Forwarded URL = nullRedirected URL = nullCookies = []
可以看到 MockHttpServletResponse.Body 中打印出正确的响应结果
二、测试类
比如我们要测试一个继承了 JpaRepository 的 UserRepository 是否正常:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryTests {
@Autowired
private UserRepository userRepository;
@Test
public void test() throws Exception {
// 查询
User user = userRepository.findById(1l).get();
System.out.println(user);
}
}
