두 개의 수업이 있습니다
@Service
public class A {
}
@Service
public class B {
@Autowired
private A a;
}
B 클래스를 테스트 할 통합 테스트를 작성하고 싶습니다. @SpringBootTest 주석이 나를 위해 작동하지 않도록 전체 Spring Boot 응용 프로그램을로드하고 싶지 않습니다. @WebMvcTest 주석을 사용하려고 시도했지만 다른 클래스도로드하고 있습니다.
특정 클래스 나 패키지 만로드하는 방법이 있습니까?
TestNG로이 작업을 수행하는 방법 만 알고 있습니다 AbstractTestNGSpringContextTests. 테스트 클래스를 확장해야합니다 . 이제 개체를 Bean모의 할 수 있도록 및 구성을 추가 할 수도 있습니다. @Autowired필요한 경우 아래 항목과 유사해야합니다.
예:
@ContextConfiguration(classes = {MyTest.TestConfig.class})
class MyTest extends AbstractTestNGSpringContextTests {
private A mockA = mock(A.class);
@Autowired
private B b;
@Configuration
static class TestConfig {
@Bean
public A a() {
return mockA;
}
@Bean
public B b() {
return new B();
}
}
}