7

これが私の方法です。正常に動作し、ダイアログが表示されます。

public void showDialog(){
    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.mylayout);
    dialog.show();
}

テスト プロジェクトがあり、ダイアログが表示されることをテストしたいと思います。.isShowing() メソッドを適用したいと思います。このようなもの...

assertTrue(dialog.isShowing());

しかし、テスト内でダイアログ変数にアクセスする方法がわかりません。

私は Robotium を使用していません (これは私の選択肢ではありません)。現在、ActivityUnitTestCase を使用してテストしています。さらに情報が必要な場合は、お気軽にお問い合わせください。

編集

ダイアログを公開することで、以下の回答を使用しようとしました

public Dialog getDiag(){
    return dialog;
}

この回答を使用して: テストで showDialog() を実行すると、新しい問題が発生します。

android.view.WindowManager$BadTokenException: * ウィンドウを追加できません -- トークンが null

4

1 に答える 1

5

showDialog 関数の外側で Dialog を宣言し、この Dialog インスタンスを返すメソッドを実装します。

public Dialog getDiag(){
    return dialog;
}

そして、このようなことをします

assertTrue(new YourClassName().getDialog().isShowing());
于 2012-11-12T19:27:19.650 に答える