MockBean в Spring Boot с Cucumber приводит к исключению NullPointerExceptionJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 MockBean в Spring Boot с Cucumber приводит к исключению NullPointerException

Сообщение Anonymous »

Я тестирую Spring Boot (3.3.0) и Cucumber (7.18.0). У меня есть репозиторий, который я хочу имитировать, и я включил необходимую (я думаю) конфигурацию для Spring и Cucumber, но получаю
"java.lang.NullPointerException: невозможно вызвать "com.example.sampleproject.repository.ArtistRepository .findById(Object)", потому что "this.artistRepository" имеет значение null".
Вот мой класс определения шага:

Код: Выделить всё

@SpringBootTest
@ContextConfiguration(classes = {SampleProjectApplication.class, CucumberSpringConfiguration.class})
public class FindArtistByIdStepDefs {

@MockBean
private ArtistRepository artistRepository;
private DataLoaderService dataLoaderService;

private List mockedArtists = new ArrayList();
private List mockedAlbums = new ArrayList();

public FindArtistByIdStepDefs(DataLoaderService dataLoaderService) {
this.dataLoaderService = dataLoaderService;
}

@Given("artists exist in the DB")
public void theFollowingArtistsExistInTheDB(DataTable dataTable) {
List map = dataTable.asMaps(String.class, String.class);

for (Map row : map) {
ArtistEntity artist = new ArtistEntity();
String name = row.get("name");
String description = row.get("description");
long id = Long.parseLong(row.get("id"));
artist.setArtist(name);
artist.setDescription(description);
artist.setId(id);
mockedArtists.add(artist);

Mockito.when(artistRepository.findById(artist.getId())).thenReturn(Optional.of(artist));
}
Тогда у меня есть конфигурация CucumberSpring:

Код: Выделить всё

@CucumberContextConfiguration
@SpringBootTest(classes = SampleProjectApplication.class)
public class CucumberSpringConfiguration {

public CucumberSpringConfiguration() {
System.out.println("CucumberSpringConfiguration initialized");
}
}
Исполнитель тестов:

Код: Выделить всё

@Suite
@SelectClasspathResource("features")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.example.sampleproject.steps, com.example.sampleproject.config")
public class TestRunner {
}
Когда я добавляю @CucumberContextConfiguration в класс FindArtistByIdStepDefs и удаляю другой, это работает. Но я хочу, чтобы эта конфигурация была более централизованной, поскольку у меня есть еще один класс определения шага и я планирую иметь больше.
Что может привести к тому, что @MockBean приведет к возникновению исключения NullPointerException при использовании централизованной конфигурации? Как я могу гарантировать, что MockBean будет правильно внедрен, сохраняя при этом централизованную конфигурацию?

Подробнее здесь: https://stackoverflow.com/questions/786 ... rexception
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • @Runwith (cucumber.class) ошибка. Импорт Cucumber.api.junit.cucumber; не может быть решено
    Anonymous » » в форуме JAVA
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • @Runwith (cucumber.class) ошибка. Импорт Cucumber.api.junit.cucumber; не может быть решено
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • @Runwith (cucumber.class) ошибка. Импорт Cucumber.api.junit.cucumber; не может быть решено
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Использование Mockito argThat в цикле приводит к исключению NullPointerException
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Io.cucumber.core.Exception.CucumberException: не удалось загрузить класс плагина: com.aventstack.extentreports.cucumber.
    Anonymous » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»