NoSuchBeanDefinitionException при написании тестов на Spring

185
23 января 2019, 18:10

Error creating bean with name 'ru. ... .test.UserServiceTest': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'ru.sk.ips.services.UserServices' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ru. ... .test.UserServiceTest': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'ru.sk.ips.services.UserServices' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Класс UserServiceTest

package ru. ... .test;
...
@RunWith(SpringJUnit4ClassRunner.class)
public class UserServiceTest {
    @Autowired
    UserServices userService;
    @Test
    public void simpleTest {
      ... 
    }
}

Класс UserService

package ru. ... .services;
...
@Service
@Transactional
public class UserServices {
    @Autowired
    private DSLContext dsl;
    ...
}

Как таковой конфигурации в проекте нет

package ru. ...;
...
@SpringBootApplication
public class Application {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
...
}
Answer 1

@RunWith(SpringJUnit4ClassRunner.class)

Этого не достаточно, чтобы поднять контекст во время теста.

Вам нужно указать конфиг класс для теста, используя @ContextConfiguration, либо использовать аннотацию @SpringBootTest.

READ ALSO
Java приложение, разрешение имен при помощи /etc/hosts

Java приложение, разрешение имен при помощи /etc/hosts

Мне нужно изменить свой сервис так, чтобы IP-адреса были не захардкожены в нем, а использовались имена из /etc/hostsВот часть кода приложения:

153
драйвер для базы оракл?

драйвер для базы оракл?

Использовал mysql драйвер для соединения с базойdb

155
Как удалить namespace только в атрибуте тега?

Как удалить namespace только в атрибуте тега?

Мне надо чтобы внутри xml один атрибут внутри тега был без префикса xsi: и для этого я нарыл решение использовать xslt

224
Upload аудиофайла, кодированного base64

Upload аудиофайла, кодированного base64

В спецификации API Bitrix24 есть метод telephonyexternalCall

159