一、测试接口
可以通过单元测试来测试我们的接口是否正常工作, 单元测试放置于 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)
@SpringBootTest
public class HelloTests {
@Test
public void contextLoads() {
}
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
}
}
如果通过测试, 控制台将打印出信息:
MockHttpServletRequest:
HTTP Method = GET
Request URI = /
Parameters = {}
Headers = [Accept:"application/json"]
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = com.example.demo.controller.HelloController
Method = public java.lang.String com.example.demo.controller.HelloController.index()
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=utf-8", Content-Length:"19"]
Content type = application/json;charset=utf-8
Body = Hello Spring Boot !
Forwarded URL = null
Redirected URL = null
Cookies = []
可以看到 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);
}
}