2013-11-01 2 views
0

나는 학생이며 키보드로 제어 할 수있는 팩맨 게임용 단위 테스트를 현재 만들고자합니다. 내가 테스트하려고하는 클래스 중 하나는 KeyListener에서 상속받은 클래스이며 KeyPressed() 함수를 테스트/호출하는 방법을 찾을 수 없기 때문입니다. 여기 post에 나와있는 것과 같은 플러그인 (예 : groovy)없이 KeyPressed()를 테스트 할 수 있습니까?KeyListener의 서브 클래스를 테스트하기위한 단위 테스트를 생성 할 수 있습니까?

게임은 Java로 작성되었으며 JUnit을 사용하여 테스트하고 있습니다. 도움을 주시면 대단히 감사하겠습니다! 고맙습니다.

+0

KeyListener 이벤트 핸들러가 호출되는지 테스트 하시겠습니까? –

+0

KeyListener를 상속 한 클래스에 대한 단위 테스트를 만들고 싶습니다. 키보드 입력을 모의 테스트에 입력하는 방법을 모르겠습니다. 즉, 키를 누를 때 keyPressed()와 같은 일부 함수가 호출됩니다. 희망이 도움이됩니다. – blenzcoffee

+0

그렇게했다면 창문을 테스트 할 수 있습니다. 처리기를 테스트하려면 메서드를 호출하면됩니다. 클래스에 핸들러가 있는지 테스트하려면 속성을 확인하십시오. –

답변

0

KeyListener은 인터페이스 일 뿐이므로 테스트 할 메서드를 호출하여 테스트 할 수 있습니다. 하나의 iffy 부분은 전달 된 KeyEvent입니다. 이것은 구체적인 클래스입니다. 그러나 원하는 경우 손으로 직접 만들 수있는 좋은 기회가 있습니다 (javadoc에서이 작업을하고 있습니다).

더 구체적으로 설명해야합니다. 무엇을 시험하고 싶니? 플러그인을 어떻게 생각하십니까? mockito을 플러그인으로 사용 하시겠습니까? 그러면 매우 편리하게 KeyEvent을 만들 수 있습니다.

일반적으로 다음은 더 나은 전략입니다. KeyListener 구현에 가능한 한 적은 코드를 넣으십시오. KeyEvent에서 필요한 것을 뽑아 내고 게임 로직이있는 클래스에 전달하십시오. 이제 더 이상 KeyListener을 테스트 할 필요조차 없습니다. 호출하는 메소드를 테스트하면됩니다.

+0

나는 모키토가 대답이라고 생각합니다. 이벤트를 조롱하고 내 처리기가 호출되고 있는지, 올바른 기능을 제공하는지 확인하고 싶습니다. 그걸 할 수 있니? – blenzcoffee

+0

@blenzcoffee 아, 이벤트를 트리거하고 싶습니다. 이것은 도움이 될 수 있습니다 : http://stackoverflow.com/a/6843305/61624 Mockito는 이벤트 생성에만 도움이됩니다. –

관련 문제