下面我们来看一个简单的SpringBoot单元测试的例子。假设我们有一个UserService
类,这个类依赖一个UserRepository
接口来进行数据库操作,我们的目标是测试UserService
类的getUserById
方法。
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
}
首先,我们需要创建一个UserRepository
的模拟对象,然后定义当调用findById
方法时,这个模拟对象的行为。然后,我们将这个模拟对象注入到UserService
中,最后,我们就可以调用getUserById
方法,并验证其返回结果是否符合预期。
@SpringBootTest
public class UserServiceTest {
@MockBean
private UserRepository userRepository;
@Autowired
private UserService userService;
@Test
public void testGetUserById() {
User user = new User();
user.setId(1L);
user.setName("test");
Mockito.when(userRepository.findById(1L)).thenReturn(Optional.of(user));
User result = userService.getUserById(1L);
Assert.assertEquals("test", result.getName());
}
}