私はエスプレッソのテストを始めたばかりですが、StackOverFlowのトピックを検索して、私のニーズに対応するソリューションを見つけることができませんでした。Android Espresso:いくつかのアクティビティでテストスイートを作成するにはどうすればよいですか?
私の質問の前史:
私は活動の多くが付いているアンドロイドのアプリケーションを持っています。一般に、アプリのさまざまなフローに対して別々のUIテストが作成されました(それぞれのフローでは個別のアクティビティが必要なので、異なるクラスでテストを実装しています)。 私のケースでは、バックグラウンドとUIyncが発生するので、最初のアクティビティから開始して次と次を続けることができません。 私が見つけた唯一の解決策は、現在のアプリで実際に動作しています - アプリのアクティビティにアイドリングするリソースを使用しています。
これで、これらの別々のクラス(各クラスはこれらのルールに独自のルールとアクティビティを使用する)を機能スイートにどのように組み込むことができるのか理解しようとしていますか?
私の経験:
1)正 - 開発者のソースコードの変更を必要とアイドリングリソースを使用しますが、スイートで唯一の活動がまだある:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ForSeveralActs { @Rule public final ActivityTestRule<TargetedActivity> mTargetedActivityRule = new ActivityTestRule<>(TargetedActivity.class, true, true);
final String username = "[email protected]";
final String password = "12345678";
private IdlingResource mIdlingRecourse;
@Before
public void setIdleResource() {
mIdlingRecourse = mTargetedActivityRule.getActivity().getIdlingResource();
Espresso.registerIdlingResources(mIdlingRecourse);
}
@Test
public void PassPermission_and_goto_MainActivity() {
// First activity - LoginActivity
Espresso.onView(withId(R.id.activity_login_et_login))
.perform(ViewActions.typeText(username));
Espresso.onView(withId(R.id.activity_login_et_password))
.perform(ViewActions.typeText(password))
.perform(closeSoftKeyboard());
Espresso.onView(withId(R.id.activity_login_btn_login))
.check(matches(isDisplayed()))
.check(matches(isClickable()))
.perform(ViewActions.click());
// Here is elements of second activity - MainActivity, without idling methods I can't reach this element
Espresso.onView(withId(R.id.helpMeCard_title))
.check(matches(withText("help_me")));
}
@After
public void unregisteredIdlingResource() {
if (mIdlingRecourse != null) {
Espresso.unregisterIdlingResources(mIdlingRecourse);
}
}
したがって、この例では、私はいくつかのテストと最後の1次のアクティビティで実行されますがあります。
2)マイナス - 私はJUnitのテストスイートかかわらず、すべての私のテスト(クラス)を起動しようとしたので、私はちょうどJUnitのにもテストや活動のための規則を含むすべての私のクラスを()に置きますスイート(このシナリオでは全く動作しません):
@RunWith(Suite.class)
@Suite.SuiteClasses(
{
ESP_test1.class,
ESP_test2.class,
ESP_test3.class
})
public class ESP_start {}
ここでは、私が上に掲示同じ質問です: はどのように私は別の活動やルールを使用している別のテストからスイートを作成することができ、どのようにのように見える?
私は、この問題を閉じた - あなたは聞いて無料です。 –