2017-01-05 14 views
2

모든 정적 메소드가있는 X 클래스가 있습니다. 이 클래스의 동작을 테스트하려면 응용 프로그램을 사용하십시오. 둘 다에 대해 별도의 단위 테스트가 있습니다. 참고 : 두 가지 모두에 대해 별도의 단위 테스트를 작성해야합니다. 클래스 의 정적 초기화를 억제Powermock - @SuppressStaticInitializationFor 모든 테스트 클래스에 대해 단일 실행으로 테스트 할 실제 정적 클래스의 단위 테스트에 영향을 미침

내가 클래스 mockstatic을하고 있어요하는 클래스 X의 단위 테스트 영향을 미치고있다.

@SuppressStaticInitializationFor의 범위에 대해 확실하지 않습니다.

답변

1

정적의 현명하지 않은 사용으로 인해 도입 된 문제를 해결하기 위해 PowerMock을 사용할 때 문제가 있습니다. 염두에 두십시오 : 정적이상이며 양호한 OO 설계 내에서입니다. 단위 테스트, 다형성을 깨고 클래스를 직접 연결하기 때문에!

여기 내 조언은 : 정적 인을 사용하지 마십시오. 단점 테스트를 위해 PowerMock을 요청할 수 있습니다. 즉, PowerMock을 사용하는 대신 테스트 가능 코드 (here) 시작)을 작성한 다음 Mockito 또는 EasyMock으로 테스트 할 수있는 프로덕션 코드를 만드는 방법을 익히십시오. 필요한 슈퍼 파워가 필요하지 않습니다.

할 수 없다면 : 최소한 단위 테스트 환경을 손상시키는 정적 초기화 코드를 작성하십시오. 개발 팀에게는 생산 클래스가 적어도 이 될 수 있으며, JUnit 테스트에서는이 될 수 있습니다.