1

Robotium テストで問題が発生しています。それぞれ約 2 ~ 3 つのメソッドを持つ 3 つのテスト クラスがあります。それらはすべて、Android ライフ サイクルのさまざまなアクティビティをテストします。私が見つけている問題は、テスト A が A のボタンを押すと、テストが合格して終了する次のアクティビティに対してインテントが呼び出されることです。次に、テスト B がアクティビティを開始しようとします。そのとき、テスト A のアクティビティがまだ生きていることに気付きました。これを使って問題を解決しようとしました。アイデアは、アクティビティがアイドル状態になるまでデバイスが待機し、非アクティブなアクティビティを終了するというものです。それから、開いていて放置されていたものを終了します。

 getInstrumentation().waitForIdleSync();
 solo.finishInactiveActivities();
 solo.finishOpenedActivities();

これがこの問題を処理するための 100% 最善の方法であるかどうかはわかりません。80% の確率で動作することに気付きましたが、まだリークが発生しています。

4

1 に答える 1

1

solo.goBack(); を使用して問題を解決しました。関数呼び出し。これにより、開いているすべてのアクティビティが強制終了されるため、テスト中にアクティビティがリークすることはありません。同様に、上に配置したコードを二重カバーとして使用しました。多数のデバイスとシナリオでこれらのテストを繰り返した後、合格したようです。

于 2012-06-04T16:05:39.947 に答える