java.lang.Exception: Test class should have exactly one public zero-argument constructor:
public class MyTest {
private MyConfig myPrimaryConfig;
private MyConfig myRealUseConfig;
public MyTest(MyConfig myPrimaryConfig, @Qualifier("myRealUseConfig") MyConfig myRealUseConfig) {
this.myPrimaryConfig = myPrimaryConfig;
this.myRealUseConfig = myRealUseConfig;
}
@Test
public void 내꺼_테스트() { ... }
}
Spring 테스트코드를 작성하던 중에, 테스트 코드 내에 생성자를 저렇게 선언했더니 오류가 났다.
오류 내용을 읽어보면.. 빈 생성자를 생성하라고 적혀있길래... 이렇게도 해보고, 생성자 2개로도 해보고
@RunWith(SpringRunner.class) 말고 @RunWith(Parameterized.class) 로도 해봤는데 실패했다.ㅠㅠ
public MyTest() { }
Config 에서 같은 클래스에 Bean 주입을 다르게 했을 때..를 테스트하고 있던터라 어떡하나 하고 있었는데. 방법을 찾음!
public class MyTest {
@Autowired
private MyConfig myPrimaryConfig;
@Autowired
@Qualifier("myRealUseConfig")
private MyConfig myRealUseConfig;
@Test
public void 내꺼_테스트() { ... }
}
그것은 바로 @Autowired 어노테이션을 사용하는 것 !!!!!
테스트코드말고 실제 서비스에서는 @Autowired 로 사용하면 물결이 생겨서 생성자로 풀어쓴건데 ㅠ_ㅠ
테스트코드는 왜 오류가 나는가..
어찌됐든 해결했으니 까먹지 않기위해 포스팅을 한다.
(혹시 지나가시다가 이유를 설명해주고 싶으시거나, 조언해주실게 있다면 편하게 말씀부탁드립니다 :))
반응형
댓글