簡體   English   中英

濃縮咖啡在@BeforeClass 之前開始活動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM