При тестировании сервис-слоя не видит данные из бд

Всем привет Столкнулся с такой проблемой: Есть модель

@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();
    }
}

Что делать в данной ситуации?


Ответы (0 шт):