2010-03-25 2 views
1

GUI 프로그래밍 (적어도 웹용)의 경우 단위 테스트에 유용한 유일한 방법은 개인 메소드 *입니다. 유닛 테스팅은 백엔드 코드에 완벽하게 적용되지만, GUI 클래스에는 맞지 않는다고 생각합니다.GUI 관련 개인용 메소드의 자동 테스트

자동 테스트를 추가하는 가장 좋은 방법은 무엇입니까?


*

이유는 테스트에 유용한 유일한 방법은 개인 생각 : 나는 GUI 클래스를 작성할 때

종종 그들은 심지어 생성자를 제외하고 공개 방법이 없습니다. 공용 메서드가있는 경우 사소한 메서드이며, 생성자는 대부분 개인 메서드를 호출하는 작업을 수행합니다.

그들은 서버에서 일부 데이터를 수신하고 그 내부에 포함 된 다른 클래스의 생성자에 데이터를 전달하고 (더 많거나 적은 직접 호출하는) 리스너를 추가하여 서버를 호출합니다. 사소한 (가장 어려운 부분은 레이아웃입니다 : CSS, IE 등)하지만 때로는 일부 고급 트릭을 수행하는 개인용 메서드를 만듭니다. 확실히 구현하지 않기 때문에은 공개적으로 표시되기를 원합니다. 레이아웃, 그리고 가능성이 변경),하지만 휴식하기에 충분히 복잡합니다. 이들은 종종 생성자에 의해서만 호출되거나 코드의 이벤트에 의해 반복적으로 호출되며 public 메서드로는 호출되지 않습니다.

나는이 형식의 메서드를 public으로 설정하거나 반사적 인 속임수를 사용하지 않고 테스트하는 방법을 원합니다.

(BTW : 나는 현재 GWT를 사용하고 있습니다,하지만 난이 대부분의 언어/프레임 워크 GUI를 코딩 할 때 내가 사용한 적이 적용 느낌) 대신에 모든 것을, 당신이해야 개인해야한다는 주장의

+0

단위 테스트 개인 메서드 allready에 대해 많은 질문을 알고 있지만 아무도 찾지 못했습니다 gui ... –

답변

1

MVC, MVP 또는 MVVM과 같은 많은 UI 관련 디자인 패턴 중 하나를 채택하는 것을 고려하십시오.

당신 UI는 검증 UI/프레 젠 테이션 - 공공 회원들과 특정 클래스에 모든 로직을 위임 할 것입니다. 이러한 구현은 여전히 ​​핵심적인 도메인 모델을 오염시키지 않습니다. 이러한 구현은 여전히 ​​UI에 따라 다르며 별도의 라이브러리로 구현 될 수 있기 때문입니다.

프레젠테이션 라이브러리를 마음껏 테스트하고 Subcutaneous Tests을 수행 할 수 있습니다.

+0

좋아, 좋은 대답. 그러나 단위 테스트에서 정보 숨기기의 원칙을 위반하도록 요구해야한다는 것이 이상한 일입니다. –

+0

나는 그 원리를 알지 못하지만 단위 테스트는 고체 원칙에 완벽하게 부합한다. 특히 SRP와 OCP. –