Spring boot @Autowired не работает в модульном тестеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring boot @Autowired не работает в модульном тесте

Сообщение Anonymous »

Насколько я понимаю, если мы используем стереотипы Spring, нам не нужно использовать новое ключевое слово для создания экземпляра. Spring управляет этим за нас и предоставляет нам bean-компоненты во время выполнения.
И чтобы Spring мог внедрить эти bean-компоненты, нам нужно использовать аннотацию @Autowired там, где мы хотим, чтобы Spring внедрить этот bean-компонент.
Ниже у меня есть очень простой класс, в котором я использую @Component, чтобы этим управлял Spring. В этом классе есть один список, который я инициализирую под свою ответственность, а затем небольшой метод, выполняющий некоторую логику.

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

@Slf4j
@Data
@NoArgsConstructor
@AllArgsConstructor
@Component
public class Parser {

private List strList = new ArrayList();

public void parseStrings(final String[] strs) {

Arrays.stream(strs)
.map(String::toLowerCase)
.filter(str -> str.length() > 8)
.filter(str -> str.endsWith("sam"))
.forEach(sam1 ->  { strList.add(sam1); });
}

}
Я также написал один модульный тест, чтобы проверить это, и вот он.

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

import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.beans.factory.annotation.Autowired;
import static org.junit.jupiter.api.Assertions.*;
@RunWith(MockitoJUnitRunner.class)
class ParserTest {

@Autowired
private Parser parser;

@Test
void parseStrings() {
String str[] = {"abcsamsam", "abcsyjhgfed abdul sam","abcAhgbkgdjhul samad", "abcabjhgdulsamsam", "sa"};
parser.parseStrings(str);

assertTrue(parser.getStrList().size() == 3);
assertTrue(parser.getStrList().get(0).equalsIgnoreCase("abcsamsam"));

}
}
Тест не пройден

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

java.lang.NullPointerException
когда он пытается вызвать метод parseStrings, что означает, что он не может внедрить правильный инициализированный компонент во время выполнения.
Может кто-нибудь подсказать, что я такое? отсутствует?
Нужно ли добавлять конструкторы (что я здесь и делаю, используя аннотации ломбок) при использовании стереотипов Spring в классе.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как @Autowired BuildProperties в тесте?
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Spring Boot Autowired выдает исключение NullPointerException в Main() при использовании поля [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Получение конфигурации Nacos в модульном тесте в .NET Core 6
    Anonymous » » в форуме C#
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Как я могу разделить все выбросы в модульном тесте?
    Гость » » в форуме Android
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость
  • Проблема с FileProvider в модульном тесте Android, специфичном для ОС Windows
    Anonymous » » в форуме Android
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous

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