web-dev-qa-db-ja.com

AndroidXフラグメントを使用したRobolectric

RobolectricでAndroidXフラグメントをテストする方法

追加した testImplementation "org.robolectric:shadows-supportv4:4.0-alpha-3"依存関係とこのコードで試してみました:

val controller = SupportFragmentController.setupFragment(
            TestableFragment.buildFragment(DATA),
            TestableFragmentHolderActivity::class.Java)

TestableFragmentandroidx.fragment.app.Fragment、およびTestableFragmentHolderActivityandroidx.appcompat.app.AppCompatActivity

しかし、テスト中にエラーが発生します:

Java.lang.NoSuchMethodError:org.robolectric.shadows.support.v4.SupportFragmentController.setupFragment(Landroidx/fragment/app/Fragment; Ljava/lang/Class;)Landroidx/fragment/app/Fragment;

7
Ufkoku

Robolectricの最新のAPIを使用してフラグメントをテストする新しい方法があります。チェック 公式ドキュメントFragmentScenarioを作成する必要があります

val fragmentScenario = launchFragmentInContainer<MyFragment>()

エスプレッソで通常行うようにテストします

onView(withId(R.id.text)).check(matches(withText("Hello World!")))
4
Dmitry Sitnikov

親切にこのgitの問題を参照してください: https://github.com/robolectric/robolectric/issues/3985 。 AndroidXフラグメントの新しいAPIがまもなくリリースされます。

1
Sai Deepthi