2013-07-05 2 views
2

최근 독립 실행 형 Java GUI 응용 프로그램에 대한 유닛 테스트를 작성하는 과제가 있습니다.GUI 레코딩을 통한 유닛 테스트

지금까지 마우스 및 키보드 입력 (및 단일 이벤트 사이의 시간)을 기록하고 이러한 매크로를 실행하여 매크로를 만들 수있는 응용 프로그램을 작성했습니다. 이는 중요한 오류에 대한 응용 프로그램을 확인하는 데 사용되지만 현재는 기본 GUI의 데이터를 확인할 가능성이 없습니다. JUnit (assertequals 등)을 통해 데이터를 확인할 수 있다면 매우 좋을 것입니다.

어떻게하면됩니까? 이것은 반성의 경우입니까?

답변

2

프레임 워크를 작성하는 것이 과제의 일부가 아니라면 휠을 다시 발명하지 않는 것이 좋습니다.

거의 모든 것이 junit을 지원하는 스윙 UI를 테스트하기위한 다양한 프레임 워크가 있습니다. 은 exple에 대해 fest-swing을보고 Junit에서 UI 구성 요소를 테스트 할 수 있습니다. 또한 밑줄이있는 UI의 속성을 선언 할 수 있습니다 (버튼을 클릭 한 후에 특정 테이블이 5 행을 가져야한다고 주장하십시오.)

최상의 조합입니다. 당신이 직접 구현 한 모의 "백엔드"또는 서버/비즈니스 로직을 시뮬레이트하기 위해 비슷한 조롱을 사용하십시오 - 이것에 대해 살펴보십시오 mockito

+0

감사합니다. 라다이, 방금 FEST- 프레임 워크로 놀았습니다. 나는 그것이 우리의 커스텀 GUI 컴포넌트를 처리 할 수 ​​없다는 것이 두려웠지만, 매력처럼 작동하고 내가 필요한 바로 그 것이다! 내 솔루션은 실제로 바퀴를 reinventing의 종류였다 :) – cutze

+0

@ cutze - 기꺼이 내가 도울 수있어. 제대로 작동했다면 정답으로 표시 하시겠습니까? ;-) – radai

0

저는 프로그램 디자인에 회의적입니다. 프리젠 테이션 레이어는 비즈니스 로직이있는 것처럼 들린다. 이것은 나쁘다.

코드 리팩터링을 권장합니다. 각 GUI 조치는 논리 계층에 대한 호출과 일치해야합니다. 로직 레이어는 프레젠테이션 레이어가 아니라 복잡한 프리젠 테이션이 아닌 한 단원 테스트를 가져야합니다.

+0

단위 테스트 애플리케이션은 현재 독립형입니다. 그것은 우리에게 마우스와 키보드 동작을 기록하고 재생할 수있는 능력을 제공합니다. 기존 메인 애플리케이션은 이미 크기가 크고 대부분의 GUI 구성 요소는 회사 내부에 있으므로 기능도 테스트해야합니다. – cutze

+0

그런 다음 논리 계층에 대한 단위 테스트를 작성하십시오. GUI를 통해 논리 계층을 테스트하지 마십시오. 그것은 좋은 범위 또는 철저한 범위의 가치를 부여하지 않습니다. GUI 레이어가 로직 레이어에 묶여 있더라도 폼을 만들어 프로그래밍 방식으로 테스트하면됩니다. 나는 매크로에 신경 쓰지 않을 것이다. –

관련 문제