2017-03-01 20 views
0

私はstartActivityForResult()で他のアクティビティ(B)によって開始される私のアプリにアクティビティ(A)を持っています。 Aでボタンをクリックすると、setResult()とfinish()が呼び出され、Bに戻ります。インストルメンテーションテストの結果を得ることは可能ですか?

私の計測器テストでは、その結果をどのように取得できますか?

私はそれを簡単に保ち、Aから直接テストを開始し、トラフB(およびその前のアクティビティ)には行きたくありません。

私はrobotiumを使用しています。私は他のツールも見てきましたが、有用なものは見つかりませんでした。

getActivityMonitor()。getResult()がnullです。 Robotiumは、とにかくstartActivityForResult()でアクティビティを開始しません。 私はアクティビティAの結果を模擬したくないので、その妥当性をチェックしたいと思います。

私の現在の回避策は、リフレクションでアクティビティの価値を読み取ることですが、より良い方法が必要です。

+0

したがって、アクティビティAをテストから直接実行し、ボタンをクリックするとしますか? –

+0

私はアクティビティをテストして、アクティビティ結果が正しいかどうかをチェックしたいと思います。 – Steve

答えて

0

私が正しくあなたの質問は、この

Intent i = new Intent (getApplicationContext(), ActivityA.class); startActivity(i); //Start Activity A

を試したり、テストのチェックで、特定の活動

public class ActivityATest extends ActivityInstrumentationTestCase2<ActivityA> { ...

からテストスターを作ることができます理解していれば

// check that we have the right activity solo.assertCurrentActivity("wrong activity", ActivityA.class);

+0

これでは不十分です。特定のアクティビティを開始することに問題はありませんが、activityResultを取得することはできません。 – Steve

関連する問題