Java语言写一个测试其中使用mockmvc
时间: 2024-05-14 15:14:49 浏览: 40
下面是一个使用MockMvc测试Java代码的示例:
```java
@RunWith(SpringRunner.class)
@WebMvcTest(MyController.class)
public class MyControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private MyService myService;
@Test
public void testGetMessage() throws Exception {
String expectedMessage = "Hello, world!";
when(myService.getMessage()).thenReturn(expectedMessage);
mockMvc.perform(get("/message"))
.andExpect(status().isOk())
.andExpect(content().string(expectedMessage));
}
}
```
在上面的示例中,我们使用了`@WebMvcTest`注释来测试`MyController`类。我们使用了`MockMvc`来模拟HTTP请求,并使用`@MockBean`注释来模拟`MyService`类的依赖关系。
在`testGetMessage()`方法中,我们使用了`when()`和`thenReturn()`来模拟`myService.getMessage()`方法的返回值,并使用`mockMvc.perform()`方法来模拟HTTP GET请求。我们使用`andExpect()`方法来测试该请求的状态码和响应内容是否正确。
MockMvc使得我们可以轻松地编写模拟HTTP请求的测试用例,同时使用@MockBean注释来模拟依赖关系。这使得我们可以独立地测试我们的代码,而无需运行整个应用程序。
阅读全文