카테고리 없음

종속성이 거의없는 서비스 계층에 대한 통합 테스트를 작성하는 방법

기록만이살길 2021. 2. 23. 21:04
반응형

종속성이 거의없는 서비스 계층에 대한 통합 테스트를 작성하는 방법

1. 질문(문제점):

두 개의 수업이 있습니다

@Service
public class A {

}

@Service
public class B {
    @Autowired
    private A a;
}

B 클래스를 테스트 할 통합 테스트를 작성하고 싶습니다. @SpringBootTest 주석이 나를 위해 작동하지 않도록 전체 Spring Boot 응용 프로그램을로드하고 싶지 않습니다. @WebMvcTest 주석을 사용하려고 시도했지만 다른 클래스도로드하고 있습니다.

특정 클래스 나 패키지 만로드하는 방법이 있습니까?

2. 해결방안:

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();
        }
    }
}
65823328
반응형