У меня есть ниже класса Test:Фиктивные объекты возвращает нуль
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringTestConfig.class)
public class UserServiceTest {
@Inject
private UserRepository userRepository;
@Inject
private UserService userService;
@Test
public void testProcessInvoice() throws SQLException {
User user = new User();
user.setFirstName("abc");
when(userRepository.save(any(User.class))).thenReturn(user);
Assert.assertNotNull(userService);
User savedUser = userService.save(user);
Assert.assertEquals("abc", savedUser.getFirstName());
}
}
У меня есть ниже SpringTestConfig.java
@Configuration
public class SpringTestConfig {
@Bean
public UserService userService() {
return Mockito.mock(UserService.class);
}
@Bean
public UserRepository userRepository() {
return Mockito.mock(UserRepository.class);
}
}
вызов к User savedUser = userService.save(user);
возвращает null
объекта пользователя. Я не могу понять, почему он возвращает null.
EDIT: UserRepository
является JpaRepository
, если это проблема
public interface UserRepository extends JpaRepository<User, Long> {
}
Я следовал тому, что вы сказали, например 'return new UserServiceImpl (userRepository()),' now' userService.save (user) 'вызывает фактическую реализацию. Благодарю. –