在Spring Boot中实现单元测试同样非常方便,下面我们打开src/test/下的测试入口com.cloud.demo.DemoApplicationTests类,编写一个简单的单元测试来模拟HTTP请求,测试之前实现的/hello接口,该接口应返回Hello world字符串。
具体代码实现如下所示。
@SpringBootTest
class DemoApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
System.out.println("初始化mock模块");
}
@Test
void hello() throws Exception {
setUp();
String responseString = mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk()) //返回的状态是200
.andDo(print()) //打印出请求和相应的内容
.andReturn().getResponse().getContentAsString(); //将相应的数据转换为字符串;
System.out.println("获取结果为:" + responseString);
}
}
controller接口内容如下:
@RestController
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String inde(){
return "Hello SpringCloud";
}
}
测试结果如下: