недавно начал пользоваться JavaConfig в Spring. И сейчас решил попировать провести тесты, без использования xml.
Открыл доку, сделал все как надо, благо сильно не отличается. прописал аннотации необходимые и параметры
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppInit.class, loader = AnnotationConfigContextLoader.class)
Далее делаю autowired необходимого Бина
@Autowired
private MyBean myBean;
запускаю тест и получаю ошибку No qualifying bean of type.
MyBean помечен как @Component и в конфете не описан.
Я уже прописывал статический класс в классе теста и в нем описывал Бин Таким образом
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppInit.class, loader = AnnotationConfigContextLoader.class)
public class MyBeanTest {
@Configuration
static class ContextConfiguration {
@Bean
public MyBean myBean() {
return new MyBean();
}
}
@Autowired
private MyBean myBean;
Не помогло, и аннотацию @Qualifier ставил, прописывал уже сам Бин с именем определенным в AppInit.class, ничего не помогает.
Подскажите, пожалуйста, может я что-то не дописал?
Насколько я понимаю надо явно проимпортировать ContextConfiguration класс в аннотации у себя в тесте.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {AppInit.class, MyBeanTest.ContextConfiguration.class}, loader =
AnnotationConfigContextLoader.class)
public class MyBeanTest {
Тут такой же принцип как с xml - нужно либо явно описать какие файлы должны быть в тестовом контексте или же сконфигурировать автоматический импорт.
Вообще я бы убрал тестовый конфиг в отдельный класс и переименовал его (т.к. может пересекаться с аннотацией)
Все оказалось еще проще, я забыл аннотацию @WebAppConfiguration. Так же прописал все файлы конфигов, и не пришло создавать тестовый файл конфига. Так же нужно убрать параметр loader у аннотации ContextConfiguration
Вот как в итоге выгладит заголовок
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
AppInit.class,
DBConfig.class,
AppConfig.class})
@WebAppConfiguration
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть задача: Необходимо написать класс который сериализует/десериализует Java BeansВ случае наличия циклических ссылок выкинуть exception
Делаю авторизацию в вк по этому видео
Мне нужно, чтобы в консоли вывелось квадратное поле из #, например, размером 5x5 Но у меня это не совсем выходит: