Avatar ·

Mockito中@Mock与@InjectMocks的区别:何时使用什么?

大家好!我是一名初级Java开发者,正在使用Mockito和Spring编写单元测试。我对@Mock和@InjectMocks注解感到困惑。我读过文档,但还没有完全理解它们的区别以及何时使用它们。 假设我有一个UserService,它使用UserRepository和EmailService。我想测试UserService中的registerUser()方法,该方法调用repository保存用户,然后发送email。 以下是我的类示例: ```java public class UserService { private UserRepository userRepository; private EmailService emailService; public UserService(UserRepository userRepository, EmailService emailService) { this.userRepository = userRepository; this.emailService = emailService; } public User registerUser(String name, String email) { User user = new User(name, email); userRepository.save(user); emailService.sendWelcomeEmail(user); ```