Я запускаю определенный юнит-тест:
@Rule
public ActivityScenarioRule<FragmentUtilActivity> activityScenarioRule2 =
new ActivityScenarioRule<>(FragmentUtilActivity.class);
@Before
public void setUp() {
... //not related to activityScenarioRule2
}
@Test
@Config(qualifiers = "sw600dp")
public void myTest() {
activityScenarioRule2
.getScenario()
.onActivity(
activity ->
standaloneAccountMenuDialogFragment.showNow(
activity.getSupportFragmentManager(), "FragmentTag"));
assertThat(...);
}
Я вижу, что вызывается код @after (с одной точкой останова, которая превратилась в две точки останова)
и я получаю эту ошибку времени выполнения:
FragmentManager is already executing transactions
java.lang.IllegalStateException:
at android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManagerImpl.java:1551)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1611)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManagerImpl.java:137)
at android.os.Handler.handleCallback(Handler.java:790)
Как это может быть, если я использую ActivityScenario, который определен один раз и управляется аннотацией @Rule
?Это не удалось только для этого конкретного теста
Есть идеи, что это может быть?