单元测试服务层上的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);