2011-09-30 5 views
1

내 webapp에는 일반적인 webElements가있는 여러 개의 스크린이 있습니다. 나는이 모든 공통 요소가 각 페이지에 존재한다고 주장하고 싶다. 하지만 하나의 assert가 실패 할 경우 중도에 중단되는 단일 유틸리티 함수에 모든 주장을 넣고 싶지는 않습니다. 각 assert에 대해 개별적인 테스트 케이스를 갖고 여러 테스트 클래스 (각 페이지마다 하나씩)에서 테스트 세트를 실행하려고합니다.여러 테스트 클래스에서 junit 테스트 세트를 어떻게 실행할 수 있습니까?

상속을 실행하는 모든 테스트를 보려면 직접 테스트 클래스보다 더 깊이 파고 들어야하기 때문에 상속을 잘못 읽었습니다. 그러나 동시에 여러 페이지에서 공통적 인 여러 개의 복사본을 유지하고 싶지는 않습니다.

+0

당신과 당신 팀에 적합한 것을해야합니다. –

답변

1

나머지 규칙에도 적용되는 테스트 개발에는 동일한 규칙이 적용되므로 사용자와 팀이 가장 쉽게 이해할 수있는 것을 찾아야합니다. 다음 옵션을 사용할 수 있습니다.

  1. 상속 : 상위 클래스에서 테스트를 정의합니다. 부모 클래스의 테스트를 포함하여 JUnit 테스트에서 상속을 사용했습니다. 이 방법은 효과가 있었고 효과적이었습니다. 주된 이점은 코드를 중복 저장하는 것이 었습니다. 단점 : 여러 곳에서 테스트를해야합니다. Eclipse의 Junit 뷰에서 테스트 이름을 두 번 클릭하면 부모 클래스로 이동하게되는데, 때로는 혼란 스러울 수 있습니다.

  2. 페이지의 일반적인 기능을 테스트하기위한 클래스가 있으며, PageTest를 호출 할 수 있습니다. PageTest는 @Parameterized를 사용하여 모든 페이지를 테스트합니다. 장점 : 공통 사항에 대한 모든 테스트는 중앙 집중식입니다. 단점, 페이지를 추가하는 경우 목록에 페이지를 추가해야합니다. 가능한 경우 리플렉션을 사용하여 목록에 항목을 추가하지 않아도됩니다. 우리는 특정 클래스 (이 경우에는 struts Action)에서 상속받은 클래스에 대한 클래스 경로를 검색하고 해당 클래스에 대해 몇 가지 테스트를 실행 한 한 세트의 테스트를 가졌습니다.

두 가지 옵션 중 적은 옵션 때문에 전 옵션을 선택합니다. 단일 페이지의 모든 것이 한 곳에서 이루어 지므로 공통 요소를 테스트하는 것을 결코 잊지 못할 것입니다. 그러나 그것은 당신의 프로젝트입니다.

관련 문제