2

libGDX の Android プロジェクトで Robotium テスターを動作させようとしてきましたが、いくつか問題がありました。まず、ゲーム ボタン (imageButton) をテストしたいのですが、そのためには Android の 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
   }
}

私のゲームは次のように設定されています。まず、リソースを処理し、最初の画面をメイン メニューに設定するメインの Game クラスがあります。

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

そして、この後、MainMenuScreen.js に移動し、JUnit でテストしたいボタンがありました。

4

1 に答える 1

2

Robotium の an の考え方は、LibgdxImageButtonとは大きく異なります。Robotium は、標準の Android UI インフラストラクチャの一部として定義されているイメージ ボタンを想定しています ( AndroidImageButtonを参照)。LibgdxImageButtonは、OpenGL テクスチャ参照を持つ Java オブジェクトです ( LibgdxImageButtonを参照)。Android UI インフラストラクチャの観点から見ると、Libgdx アプリはフルスクリーンの OpenGL ビューにすぎず、Robotium が使用するメタデータはほとんどありません。

生の「clickOnScreen」インフラストラクチャを使用できる場合もありますが、画面上のボタンの位置を手動で計算して追跡する必要があります。さらに、Libgdx アプリにはない Android UI インフラストラクチャへの他の依存関係が Robotium に含まれていなかったとしたら、私は驚きます。

于 2013-03-29T06:41:03.603 に答える