2017-12-04 20 views
1

私はアンドロイドアプリのデータ駆動型テストを作成しています。エスプレッソテストフレームワークにCSVを書き始めると、すぐにテストを設計し変更することができます。エスプレッソは、成功したクリックやテキスト入力などのUIに関する基本的なことを確認できますが、より高度なロジックを処理できますか?エスプレッソテスト:変数へのアクセス

たとえば、テスト中に行われたいくつかのクリックに基づいて領収書を作成しようとしています。これはランタイム前に原価計算され、実際の対予想結果の自動比較のためにCSVに入力されます。これを行うには、値を確認するために領収書オブジェクトにアクセスする必要がありますか?または少なくともそれを表示するテキストボックス(簡単ですが、本当に私が後にしているものではありません)。

したがって、メモリに格納されたオブジェクトをメインアプリケーションからエスプレッソテストフレームワークに取り込む方法はありますか?

答えて

1

私の質問に対する答えが見つかりました。

オブジェクト/変数を取得するには、それらが存在するクラスに移動する必要があります。これは@Ruleタグとエスプレッソで達成される:

@Rule 
public ActivityTestRule<MainActivity> mainActivityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class); 

ここにあなたが行うことができますから:

mainActivityTestRule.getActivity(); 

、そこからすべてのオブジェクトが

EDITアクセスすることができます。

プリミティブをうまくやっているようですが、オブジェクトが実際に通過しているかどうかを確認しようとしています。私のエスプレッソクラスにあるオブジェクトは、コンストラクタが実行されたように、デフォルトであるようです。より多くの情報で更新されます。

編集2:

これはオブジェクトでは機能しません。ブレークポイントをエスプレッソクラスとメインアプリケーションに入れ、それらを比較すると、異なるオブジェクトIDが表示されます。メインアプリケーションからオブジェクトを取得しても、同じ状態のオブジェクトは返されません。

関連する問題