в случае @DataJpaTest NoSuchBeanDefinitionException из-за @Value - PullRequest
0 голосов
/ 08 июля 2019

Я пытался использовать только слой dataJpa для тестирования своих репозиториев:

    @DataJpaTest
    @AutoConfigureTestDatabase(replace = NONE)
    @RunWith(SpringRunner.class)
    @ActiveProfiles("test")
    public class DaoRepositoryTest extends                 AbstractTestWithPostgresContainer {

        private static final Logger log =         LoggerFactory.getLogger(DaoRepositoryTest.class);

        @Autowired
        private DaoRepository daoRepository;

        @Test
        @Sql("classpath:db/migration/V1.0__init.sql")
        public void save_shouldSave() {
            final Dao dao = Dao.builder()
                    .title("Test-title")
                    .build();

            final Dao result = daoRepository.save(orderDao);

            assertThat(result.getId()).isNotNull();
            log.info("Result: {}", result);
        }
    }

но у меня есть ConfigurationProperties, которые я использовал в своем приложении (мне все равно, в моем тесте репозитория):

    @ConfigurationProperties("redirect-path")
    @Data
    public class PathProperties {
        private Map<String, String> paths;
    }

В результате у меня есть это исключение:

    Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type application.config.RedirectPath' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Я думаю, это потому, что для контекста DataJpaTest не используется мое свойство в yml:

    redirect-path:
      paths:
        test: http://localhost:8090

как я могу сказать пружине, что мне не нужно использовать PathProperties в моем тесте?

Теперь я должен использовать аннотацию @SpringBootTest.

...