SpringApplication.run()으로 보통 호출되는 @Service 클래스를 테스트하고 싶습니다. 나는 그것이 작동하지 않습니다 JUnit가에서하려고 할 때의 MongoService가 null가 아닌)가 컨트롤러에 의해 호출spring-boot @service class 테스트하기
@Service
@EnableConfigurationProperties(AppProperties.class)
public class MongoService {
private static final Logger logger = LoggerFactory.getLogger(MongoService.class);
private MongoClient mongoClient;
private final AppProperties properties;
@Autowired
public MongoService(AppProperties properties) {
this.properties = properties;
}
/**
* Open connection
*/
public void openConnection() {
try {
mongoClient = new MongoClient(new MongoClientURI(properties.getMongoConnectionString()));
} catch (Exception e) {
logger.error("Cannot create connection to Search&Browse database", e);
throw new BackendException("Cannot create connection to Search&Browse database");
}
}
}
이 SpringApplication.run (로 시작했지만 :
서비스 클래스입니다.
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = AppProperties.class)
public class MongoServiceTest {
private static final Logger logger = LoggerFactory.getLogger(MongoServiceTest.class);
@Autowired
MongoService mongoService;
@Test
public void MongoServiceAutowired() {
assertNotNull(mongoService);
}
}
그러나 나는이 예외 받고 있어요 :
그래서, 나는이 노력하고있어
org.springframework.beans.factory.UnsatisfiedDependencyException : 오류는 '이름으로 빈을 생성을 mypackage.MongoServiceTest ':'mongoService '필드를 통해 표현 된 만족스럽지 못한 의존성; 중첩 예외는 org.springframework.beans.factory.NoSuchBeanDefinitionException : 유형 'mypackage.services.mongo.MongoService'의 유효한 Bean이 없습니다 : 적어도 하나의 bean이 예상 autowire 후보가됩니다. 종속성 주석 : {@ org.springframework.beans.factory.annotation.Autowired (필수 = true)}
실마리? 내가 어디에서 실패 했는가?
'@ SpringBootTest'는 프로젝트의 루트 레벨에 있어야하는'@ SpringBootApplication'을 찾고 있습니다 (스프링 구성 요소/구성을 재귀 적으로 검색하기 때문에) [또는 @ComponentScan을 통해 항목을 찾을 위치를 지정하기 때문에 ']. 이 경우인가요? – DerM
@ComponentScan을 추가했지만 성공하지 못했습니다 (jUnits는/test 폴더에 저장 됨) –