При тестировании сервис-слоя не видит данные из бд
Всем привет Столкнулся с такой проблемой: Есть модель
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "user")
public class User {
@Id
@Column(name = "user_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "user_name")
private String username;
@Column(name = "user_pass")
private String password;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
private Collection<Todo> todos;
}
Jpa репозиторий
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
И сервис
@Service
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
@Autowired
public UserServiceImpl(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public Optional<User> getUserByUsername(String username) {
return userRepository.findAll().stream().filter(x->x.getUsername().equals(username)).findFirst();
}
}
При разработке теста столкнулся с такой проблемой. Метод в сервисе выдаёт пустой список, хотя данные в бд есть. Сам тестовый метод:
@SpringBootTest
@RunWith(SpringRunner.class)
public class UserServiceImplTest {
@Autowired
@MockBean
private UserServiceImpl userServiceImpl;
@MockBean
private UserRepository userRepository;
@Test
public void whenUserExists_thenReturnTrue() throws Exception {
String username = "12";
Assert.assertTrue(userServiceImpl.getUserByUsername(username).isPresent());
//Mockito.verify(userRepository, Mockito.times(1)).findAll();
}
}
Что делать в данной ситуации?