@autowire не создает объект с пользовательской аннотацией в junit - PullRequest
1 голос
/ 01 июня 2019

Я новичок в весенней загрузке и пишу Junit для моего REST Api. Поэтому моему классу требуется много аннотаций для запуска Junit.Поэтому я планировал поместить всю аннотацию в одну пользовательскую аннотацию и использовать эту пользовательскую аннотацию в своем классе Junit.Но теперь мой Autowire перестал работать.

Я пытался создать пользовательскую аннотацию и использовал ее в своем классе Junit, но теперь аннотация @Autowire перестала работать.

Ниже приведен код пользовательской аннотации:

@Inherited

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.CLASS)

@Documented

@Category(UnitTest.class)

@RunWith(SpringRunner.class)

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {AptDataApiApplicationRepo.class })

@TestPropertySource("classpath:application-test.properties")

public @interface RepoTestConfig {

}

// Код моего класса JUnit

@RepoTestConfig

public class HolidayRepoTest {

    @Autowired
    private IHolidayRepo iHolidayRepo;
}

// здесь springing выдает исключение, когда пружинный контекст пытается получитьup

Ожидается исключение:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.demo.repository.IHolidayRepo' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

@ Примечание. Когда я помещаю все аннотации в класс HolidayRepoTest, все в порядке.

...