@Validated 기능 사용 시 Spring의 AOP Proxy 동과 관련되어 AService 클래스내에 @Autowired BService bService가 null 해결 방법
@Validated
@Service
class AService {
@Autowired
private BService bService;
private Test getTest() {
// bService null인 상황일때
}
}
@ActiveProfiles({ Application.ACTIVE_PROFILE_TEST_CASE })
@SpringBootTest
@ExtendWith(SpringExtension.class)
@TestMethodOrder(MethodOrderer.Alphanumeric.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@Slf4j
class TestCase {
@MockBean
private BService bService;
@Autowired
private AService aService;
@Test
void test() {
...
BService bService = new BService();
Mockito.when(bService.get1("1")).thenReturn(new Test());
...
ReflectionTestUtils.invokeMethod(AopTestUtils.getTargetObject(aService), AService.class, , "getTest");
}
}