Весна тест интеграции не запускается, как я справляюсь с этой ошибкой? - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть тестовый класс, который сводит меня с ума из-за этой ошибки:

org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания бина с именем .imprimirRelatorio: неудовлетворительная зависимость, выраженная через репозиторий полей; вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: нет квалифицированного компонента типа v1.teste.Service: ожидается как минимум 1 компонент, который квалифицируется как кандидат для автоматического подключения. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (обязательно = true)}

После поиска в сети по разрешению я не смог запустить тест. Тестовый класс был таким:

@RunWith(SpringJUnit4ClassRunner.class)
public class imprimirRelatorio {


   @Autowired
   PautaService pautaRepository;

    @Test
    public void imprimirCabecalho(){
        PautaReportBuilder pautaReportBuilder = new PautaReportBuilder();
        //Reuniao reuniao = reuniaoService.findOne(UUID.fromString("4c7d3fc8-f78d-4ed3-a1ad-83c5da822ea7"));


        try {
             pautaReportBuilder.cabecalhoRelatorios(reuniao);

        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }




}

/ * Update * /

Поэтому я забыл сказать, что уже пробовал аннотацию @service в интерфейсе pautaService. И то же самое в тестовом классе я пытался использовать аннотацию @SpringBootTest. Поэтому сообщения об ошибках были другими.

Класс App.class

 @SpringBootApplication 
@ComponentScan({"br.com.empresa123.sistema123.*"}) 
public class App { public static void main(String[] args) { 
SpringApplication.run(App.class, args);
 }
 } 

Интерфейс PautaService:

@Service
public interface PautaService {

    Page<Pauta> findAll(Pageable page);

    Pauta findOne(UUID uuid);

    Pauta save(Pauta pauta);
} 

Это первый подход моего теста, вложенный исключение:

org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании компонента с именем subjectController: неудовлетворенная зависимость, выраженная через поле subjectService; Вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем 'subjectService': Неудовлетворенная зависимость, выраженная через поле 'domainSv c'; вложенное исключение: org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем dominio: неудовлетворенная зависимость, выраженная через поле domainRepo; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка создания бина с именем 'domainReposImpl': неудовлетворенная зависимость, выраженная через поле 'sqlGenericPager'; Вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: нет доступного квалифицирующего компонента типа 'java .lang.String': ожидается как минимум 1 компонент, который считается кандидатом на автоматическое подключение. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (обязательно = true), @ org.springframework.beans.factory.annotation.Qualifier (value = sql -Generi c -Pager)}

Ответы [ 3 ]

2 голосов
/ 28 февраля 2020

Для интеграционного теста добавьте @SpringBootTest к вашему классу.

Если файл находится не в той же упаковке вашего приложения, @ComponentScan() упаковка вашего приложения.

1 голос
/ 28 февраля 2020

Я думаю, вы забыли аннотировать сервис аннотацией @Service. Если да, то пометьте Сервис КЛАСС с помощью @ Сервис.

0 голосов
/ 28 февраля 2020

Я решаю эту проблему, когда ищу с помощью аннотации, потерянной в моем коде, которую я никогда не использовал:

public abstract class BaseCustomRepository {

    // the class code 

    @Autowired
    @Qualifier("sql-Generic-Pager")
    protected String sqlGenericPager;

} 

Я никогда не использовал реализацию хранилища Custom, поэтому я переосмыслил то, что буду делать с этим классом , Спасибо большое программистам, которые потеряли свое время, чтобы помочь мне и стеку, чтобы разделить мои проблемы.

Я смеялся над этим вопросом, все проблемы были вызваны мной, как будто вы делаете git команду вины в классе и видите своего пользователя, который сделал неправильный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...