2011-03-03 2 views
0

약간 모순이 될 수 있습니다. 하지만 기본적으로 Java 편집기 /보기 등을 보여주는 "테스트"를 실행해야하며 사용자가 나머지 응용 프로그램을 시작하지 않고도보기와 상호 작용할 수 있습니다. 같은Java 종료가 아닌 Java 테스트가 있습니까?

뭔가 :

public static void main(String[] args) { 
    Display display = new Display(); 
    final Shell shell = new Shell(display); 
    shell.setSize(500, 500); 
    shell.setLayout(new RowLayout()); 
    shell.setText("Composite Example"); 
    final Composite composite = new Composite(shell, SWT.NONE); 
    GridLayout gridLayout = new GridLayout(); 
    gridLayout.numColumns = 4; 
    composite.setLayout(gridLayout); 

    // Here the view is shown 
    MyExample sdf = new MyExample(composite, SWT.NONE); 

    shell.open(); 
    while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) 
     display.sleep(); 
    } 
    display.dispose(); 
    } 

은 사용자가 시작하고 수동으로 종료해야 이러한 사용자 상호 작용 테스트를 만들려면이 (예를 들어, 사용의 JUnit)를 수행하는보다 체계적인 방법이 있나요?

답변

1

먼저 코드를 더 세밀한 방법으로 리팩토링해야합니다. model-view-controller 디자인 패턴을보십시오. 예를 들어 http://java.sun.com/blueprints/patterns/MVC-detailed.html

정상적으로 완료되면 모든 실제 작업은 정상적인 JUnit 테스트로 테스트하기 쉬운 모델 또는 컨트롤러 클래스에 있어야합니다. 뷰는 매우 얇아서 실제 그래픽 구성 요소를 만들뿐입니다. 일반적으로 필요하지 않은 테스트.

GUI 테스트를 계속하기로 결정한 경우 Zoltán이 제안한대로 SWTBot을 제안합니다. 그것은 Eclipse와 잘 통합됩니다.

1

저는 GUI 테스트 도구가 필요하다고 생각합니다. 나는 당신이 처음에 원하는 것이 아니라 GUI 버튼을 누르는 자동화 된 방법으로 사용될 수 있음을 안다.

나는 실험을 위해 SWTBot 또는 WindowTester을 제안합니다.

관련 문제