单元测试服务层上的AssertionError(在Java中使用Spring)

单元测试服务层上的AssertionError(在Java中使用Spring),java,unit-testing,mockito,Java,Unit Testing,Mockito,试图对我的服务层进行单元测试,这是我的测试代码: @RunWith(MockitoJUnitRunner.class) public class ServiceCreateUserTest { @Mock private UserRepository userRepository; @InjectMocks private UserCreateService userCreateService; @Test public void when_

试图对我的服务层进行单元测试,这是我的测试代码:

@RunWith(MockitoJUnitRunner.class)
public class ServiceCreateUserTest {

    @Mock
    private UserRepository userRepository;

    @InjectMocks
    private UserCreateService userCreateService;

    @Test
    public void when_save_user_it_should_return_user() {
        User user = new User();
        user.setName("Test Name");

        when(userRepository.save(ArgumentMatchers.any(User.class))).thenReturn(new User());

        User created = userCreateService.create(user);

        assertThat(created.getName()).isSameAs(user.getName());
    }
}
这是我的服务代码:

@Service
public class UserCreateService {

    @Autowired
    UserRepository repository;

    public User create(User user) {
        return repository.save(user);
    }
}
我在运行时遇到以下错误:

java.lang.AssertionError: 
期望: 和实际:

 <null>

指同一对象


有人能帮我照一下吗?不确定我的测试代码中缺少什么。可能与我的方法导入有关?

您正在userRepository.save()调用中返回一个新用户()。因此,当调用userRepository.save()时,它将返回一个新的用户对象。相反,返回给定的用户

when(userRepository.save(ArgumentMatchers.any(User.class))).thenReturn(user);