如何让Mockito中的模拟方法返回传递给它的参数?
大家好!我是 Java 和 Mockito 的初学者,在编写测试时遇到了一个问题。我有一个类,它调用 repository 的方法来保存对象,然后使用返回值(例如生成的 ID)。我想模拟这个 repository,使该方法返回传入的同一个对象,但带一些修改(例如设置了 ID)。这该怎么做?
以下是我正在测试的代码示例:
```java
public class UserService {
private UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User createUser(String name, String email) {
User user = new User(name, email);
User savedUser = userRepository.save(user);
// savedUser 应该具有数据库设置的 ID
return savedUser;
}
}
```
我的测试代码如下:
```java
@ExtendWith(MockitoExtension.class)
public class UserServiceTest {
@Mock
private UserRepository userRepository;
@Test
public void testCreateUser() {
// 如何配置模拟对象,使其返回已设置 ID 的传入对象?
}
}
```