我们在上一个案例的基础之上,添加spring-boot-starter-test依赖,看看在Spring Boot中如何实现测试用例的编写。

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>在我们的项目test包里,编写一个测试类,HelloBootAppliationTest类。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockServletContext.class)
@WebAppConfiguration
public class HelloBootApplicationTest {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloBootApplication()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello Spring Boot!")));
}
}我们使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloBootApplication就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中.
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
我们可以看到,执行的结果为”绿色“,也就是说现在执行结果没问题!
当我们把预期的结果改成错误的内容,此时再检测,会发现结果出问题了,变成了红色的提示。

使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloController就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中.
执行getHello()测试方法,运行正常.

原文作者:;如有侵权,请联系管理员删除。