2011-07-05 2 views
2

저는 JUnit을 처음 사용하고 있습니다. 모든 메소드에 대해 단위 테스트를 작성해야하는 샘플 Java 프로젝트가 있습니다. 불행하게도 코드가 잘못 설계되었으며 일부 메소드가 UI에서 수행됩니다. 또한, 일부 메소드는 메시지 상자를 표시하고 리턴 값을 리턴하지 않습니다.Junit 및 messageboxes

두 가지 질문이 있습니다. 첫째, 기존 코드를 수정하지 않고 단위 테스트를 실행할 때마다 메시지 상자를 표시하지 않고 입력하지 않을 수있는 방법이 있습니까?

두 번째 질문 : 테스트 함수가 메시지 상자를 예상하고 문자열 내용에 실패를 성공시킬 수 있습니까?

나는 어떤 도움을 주셔서 감사합니다. 최선의 해결책은 코드 자체를 수정하는 것입니다. UI에서 완전히 BusinessLogic을 분리하고 예상 된 결과를 테스트하는 것입니다. 또는 메시지 상자가 어떻게 든 필수적인 모달 메시지 상자 (겸손한 대화 상자 상자)하지만 불행히도 코드에서 아무 것도 변경할 수 없습니다.

감사합니다 :)

Nili

+1

테스트 할 수 있지만 수정할 수없는 나쁜 코드가있는 경우 작업 변경 사항을 찾으십시오. 넌 바보 짓을하고있어. –

+0

우리는 스윙 UI에 대해 이야기하고 있습니까? 웹 응용 프로그램/JSP? 실제로 광범위한 대답에는 영향을주지 않지만 세부 사항은 다를 수 있습니다. –

+0

@Joachim, Swing UI. @Don, 당신은 절대적으로 맞습니다 :) – Nili

답변

0

코드를 변경할 수 없습니까? 처음에는 JMockit을 보았습니다.이 코드는 실제로 테스트해야하는 방법에 대해 많은 우려를 표명하지 않은 코드에 의해 심하게 제약 될 때 많은 가능성을 열었습니다. 코드를 수정하지 않고 테스트가 실행되는 동안 귀찮은 부품의 기본 구현을 대체 할 수 있어야합니다. 따라서 테스트 주제를 변경했을 경우에만 (의미있는 테스트를 작성해야합니다!) 또는 그것의 의존성. 다른 모의 객체 프레임 워크도 유용 할 수 있지만 JMockit을 배우기위한 투자는 실제로 시간을 많이 소비했습니다.

0
unfortunately I am not allowed to change anything in the code. 

의 JUnit과 스윙 테스트를 자동화하는 방법에 대한 구글에서 물건의 모든 종류가있다. 불행히도 테스트 할 때이 문제를 해결할 방법이 없습니다.

2

내가 코드를 편집 할 수만 있다면 시작할 수있는 모든 방법이 있습니다. 따라서 첫 번째 방법은이 제한을 완화 할 수 있는지 확인하고 Working Effectively With Legacy Code을 읽는 것입니다.

메시지 상자의 내용을 확인하기 위해 FEST-Swing과 같은 GUI 테스트 프레임 워크를 사용하면 실패 할 수 있습니다.