2013-05-21 2 views
1

몇 가지 추상 클래스와 메소드가있는 애플리케이션 용 JUnit 테스트 케이스를 개발해야한다. 다른 클래스에 의해 확장되지 않고 추상 클래스에 대한 JUnit 테스트 케이스를 생성 할 수 있습니까? 하위 클래스가 추상 클래스를 확장하는 경우 하위 클래스를 테스트하기에 충분합니까? 추상 클래스가 아닌 추상 메소드에 대한 테스트 케이스를 작성하는 방법은 무엇입니까?추상 자바 클래스를위한 JUnit 테스트 케이스 만들기?

+1

초록색이 아닌 추상 메서드에 대한 테스트 케이스를 만들고 싶습니까? – Despicable

+1

이 질문보기 http://stackoverflow.com/questions/1087339/using-mockito-to-test-abstract-classes 나는 그것이 당신을 도울 것이기를 희망한다. – Freak

답변

4

추상 클래스의 인스턴스를 만들 수 없으므로 파생 클래스를 사용하여 테스트해야합니다. 테스트 목적으로 추상 클래스를 확장하는 아주 간단한 클래스를 생성 할 수 있습니다. 테스트 할 때 추상 클래스에서 테스트가 필요한 모든 메소드를 테스트하는 데 서브 클래스가 사용되는지 확인하십시오.

0

사용하면 추상적 인 방법으로 원하는대로 구현 익명 클래스입니다. 여기

0

  • getInstance()이 위의 링크에서 제안 된 솔루션을 사용하여 구현이라는 abstract 클래스의 인스턴스를 반환하는 시험에서 protected 방법을 만들 ...이 접근 할 방법입니다 (클래스, 가짜 또는 기본 인스턴스의 테스트 구현)
  • setup/@Before 메서드에서 getInstance() 메서드를 호출하여 테스트에 사용할 필드를 채 웁니다.

이 방법을 사용하면 추상 클래스를 확장하는 클래스를 테스트 할 때이 테스트 세트를 다시 사용할 수 있습니다. 구체적인 클래스에 대한 테스트가 추상 클래스에 대한 테스트를 확장하고 getInstance 메서드를 재정의하여 구체적인 클래스의 인스턴스를 반환함으로써이를 수행합니다.

관련 문제