JUnit+Mock 自动化测试
时间: 2023-10-11 16:18:29 浏览: 159
使用JUnit+Mock进行自动化测试,可以按照以下步骤进行:
1. 创建一个测试类,使用JUnit和Mockito等工具进行测试。
```java
@RunWith(MockitoJUnitRunner.class)
public class UserControllerTest {
@Mock
private UserService userService;
@InjectMocks
private UserController userController;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(userController).build();
}
@Test
public void testGetUserById() throws Exception {
User user = new User();
user.setId(1L);
user.setName("Test");
user.setAge(18);
Mockito.when(userService.getUserById(1L)).thenReturn(user);
mockMvc.perform(MockMvcRequestBuilders.get("/users/{id}", 1L))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.id").value(1L))
.andExpect(MockMvcResultMatchers.jsonPath("$.name").value("Test"))
.andExpect(MockMvcResultMatchers.jsonPath("$.age").value(18));
}
}
```
在这个例子中,使用@RunWith和@Mock注解来配置测试环境,使用@InjectMocks注解来注入需要测试的UserController对象,使用@Before注解来配置MockMvc对象,使用Mockito.when和MockMvc.perform等方法来进行测试。
2. 运行测试用例,查看测试结果。
在Eclipse、IntelliJ IDEA等IDE中,可以右键点击测试类并选择Run As JUnit Test来运行测试用例。测试结果将会在控制台中输出。
在这个例子中,UserController中有一个getUserById方法,用于获取ID为1的用户信息。在测试用例中,使用Mockito.when方法来模拟UserService的getUserById方法的返回值,使用MockMvc.perform方法发送GET请求,并使用MockMvcResultMatchers.jsonPath和MockMvcResultMatchers.status等方法来验证返回结果的正确性。注意,这个例子使用了MockMvcBuilders.standaloneSetup方法来配置MockMvc对象,表示不依赖于Spring容器进行测试。如果需要依赖于Spring容器进行测试,可以使用@SpringBootTest注解和WebMvcTest注解等方法进行配置。
阅读全文