[英]Espresso start activity before @BeforeClass
@Before 課不開始活動。 因此,沒有可對其執行操作的視圖。 是否可以在@BeforeClass 之前開始活動
由於此原因而失敗的示例性測試:
@RunWith(AndroidJUnit4.class)
public class MakeFeedingTest {
@Rule
public ActivityScenarioRule<MainActivity> scenarioRule = new ActivityScenarioRule<>(MainActivity.class);
@BeforeClass
public static void setup() {
onView(withId(R.id.add)).perform(click());
onView(withId(R.id.save)).perform(click());
}
@Test
public void superBasicTest() {
onView(withId(R.id.new_element)).check(matches(isDisplayed()));
}
}
如何在執行 @BeforeClass 之前啟動活動,以便測試不再失敗?
用例:在執行其他測試之前將元素添加到列表中。
這不是相關的設計模式,我不會那樣做。
為此,請執行以下操作:
@RunWith(AndroidJUnit4.class)
public class MakeFeedingTest {
@Rule
public ActivityScenarioRule<MainActivity> scenarioRule = new ActivityScenarioRule<>(MainActivity.class);
@BeforeClass
public static void setup() {
}
@Test
public void superBasicTest() {
clickButtons()
onView(withId(R.id.new_element)).check(matches(isDisplayed()));
}
private void clickButtons() {
onView(withId(R.id.add)).perform(click());
onView(withId(R.id.save)).perform(click());
}
}
如果您堅持以這種方式使用它,請將附加參數添加到 screnario 規則中,如下所示,看看是否可行:
@Rule
public ActivityScenarioRule<MainActivity> scenarioRule = ActivityTestRule(MainActivity.class.java, true, true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.