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);
```