2013-03-29 1 views
2

저는 Robotium 테스터가 libGDX의 Android 프로젝트에서 작동하도록하려고했지만 몇 가지 문제가있었습니다. 먼저 게임 버튼 (imageButtons)을 테스트하고 싶습니다.하지만 안드로이드에서 imageButton 인덱스가 필요합니다.libGDX가있는 Robotium이 imageButton 인덱스를 찾았습니다

어떻게받을 수 있습니까?

내 버튼을 주요 프로젝트에 있습니다

ImageButtonStyle style = new ImageButtonStyle(); 
    style.imageUp = buttonsImagesUp; 
    style.imageDown = buttonsImagesDown; 
    ImageButton newgameButton = new ImageButton(style); 
    newgameButton.setPosition(425,330); 

이 내가 JUnit을에서 테스트하고자하는 버튼입니다.

내 JUnit을 코드 :

내 게임은 다음과 같이 설정
public class ButtonTest extends ActivityInstrumentationTestCase2<MainActivity> { 

    private Solo solo; 

    @SuppressWarnings("deprecation") 
    public ButtonTest() { 
     super("com.me.myGame", MainActivity.class); 
    } 

    protected void setUp() throws Exception { 
     super.setUp(); 
     solo = new Solo(getInstrumentation(), getActivity()); 
    } 

    public void testMenu(){ 
     solo.assertCurrentActivity("First menu selected", MainActivity.class); 
     solo.clickOnImageButton(index); //need index 
    } 
} 

: 자원을 처리하고 메인 메뉴의 첫 화면을 설정하는 주요 게임 클래스가 먼저 :

@Override 
    public void create() { 
     playSound = userPref.getBoolean("playSounds"); 
     setScreen(mainMenuScreen);    
    } 

그리고 MainMenuScreen.js로 간다. JUnit으로 테스트하고 싶은 버튼이 이것이다.

답변

2

Robotium의 아이디어는이다.은 Libgdx와 매우 다릅니다. Robotium은 표준 Android UI 인프라의 일부로 정의 된 이미지 버튼을 기대하고 있습니다 (Android ImageButton 참조). Libgdx ImageButton은 OpenGL 텍스처 참조가있는 Java 객체입니다 (Libgdx ImageButton 참조). Android UI 인프라 스트럭처에서 Libgdx 앱은 전체 화면 OpenGL보기에 불과하며 Robotium에서 사용할 메타 데이터는 거의 없습니다.

원시 "clickOnScreen"인프라를 사용할 수는 있지만 화면에서 단추 위치를 수동으로 계산하고 추적해야합니다. 또한 Robotium에 Libgdx 앱에없는 Android UI 인프라에 대한 다른 종속성이 포함되지 않은 경우 놀랄 것입니다.

+0

답변 주셔서 감사합니다. 나는 libgdx에서 테스트를 자동화하는 다른 방법을 찾아야 만하는 것 같습니다. – user1601401