Mockito 测试框架
@RunWith 是 JUnit 框架中的一个注解,用于指定测试运行器(Test Runner)。测试运行器负责执行测试用例,并提供执行测试所需的环境
@InjectMocks 注解:用于注入模拟对象到被测试类的字段中。当你在测试类中使用
@InjectMocks 注解标记一个字段时,Mockito 将尝试将之前使用 @Mock 创建的模拟对象注入到被测试类的这个字段中。
// UserServiceImplTest.java
@RunWith(MockitoJUnitRunner.class)
public class UserServiceImplTest {
@Mock
private UserRepository userRepository;
@InjectMocks
private UserServiceImpl userService;
@Test
public void testGetUserName_UserFound() {
// 模拟 UserRepository 的行为
User mockUser = new User(1, "John");
Mockito.when(userRepository.findById(1)).thenReturn(mockUser);
// 调用被测试的方法
String userName = userService.getUserName(1);
// 验证行为是否符合预期
assertEquals("John", userName);
}
@Test
public void testGetUserName_UserNotFound() {
// 模拟 UserRepository 的行为
Mockito.when(userRepository.findById(2)).thenReturn(null);
// 调用被测试的方法
String userName = userService.getUserName(2);
// 验证行为是否符合预期
assertEquals("User not found", userName);
}
}
废话短说