Проблем с нахождение сценарием cucumber при написании компонентных тестов
Вообщем то есть проблема при определении сценариев кукумбер фрайемворка , а именно когда я описываю сценарий и пишу его как бы реализию через @Given @When @Then Во время выполнения теста не получается найти реализацию
Вот код
package com.example.passengerservice.component;
import com.example.passengerservice.dto.response.PassengerResponse;
import com.example.passengerservice.mapper.PassengerMapper;
import com.example.passengerservice.model.Passenger;
import com.example.passengerservice.repository.PassengerRepository;
import com.example.passengerservice.service.impl.PassengerServiceImpl;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import io.cucumber.spring.CucumberContextConfiguration;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import java.util.Optional;
import static com.example.passengerservice.util.PassengerTestUtil.getPassenger;
import static com.example.passengerservice.util.PassengerTestUtil.getPassengerResponse;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.doReturn;
@CucumberContextConfiguration
public class PassengerComponentTest {
@Mock
private PassengerRepository passengerRepository;
@Mock
private PassengerMapper passengerMapper;
@InjectMocks
private PassengerServiceImpl passengerService;
private PassengerResponse passengerResponse;
private Exception exception;
@Given("A passenger with id {long} exist")
public void PassengerWithIdExist(long id) {
PassengerResponse expected = getPassengerResponse();
Passenger retrievedPassenger = getPassenger();
doReturn(Optional.of(retrievedPassenger))
.when(passengerRepository)
.findById(id);
doReturn(expected)
.when(passengerMapper)
.fromEntityToResponse(retrievedPassenger);
doReturn(true)
.when(passengerRepository)
.existsById(id);
Optional<Passenger> passenger = passengerRepository.findById(id);
assertTrue(passenger.isPresent());
}
@When("The id {long} is passed to the findById method")
public void the_id_is_passed_to_the_find_by_id_method(long id) {
passengerResponse = passengerService.getPassengerById(id);
}
@Then("The response should contain passenger with id {long}")
public void theResponseShouldContainPassengerWithId(long id) {
Passenger passenger = passengerRepository.findById(id).get();
PassengerResponse expected = passengerMapper.fromEntityToResponse(passenger);
assertThat(passengerResponse).isEqualTo(expected);
}
}
package com.example.passengerservice.component;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(
features = "classpath:features"
)
public class CucumberComponentTest {
}
passenger.feature
Feature: Driver Service
Scenario: Retrieving a passenger by existing id
Given A passenger with id 1 exist
When The id 1 is passed to the findById method
Then The response should contain passenger with id 1
Вот ошибка
Step undefined
You can implement this step using the snippet(s) below:
@When("The id {int} is passed to the findById method")
public void the_id_is_passed_to_the_find_by_id_method(Integer int1) {
// Write code here that turns the phrase above into concrete actions
throw new io.cucumber.java.PendingException();
}
