如何使用 Espresso 测试片段是不是可见

Posted

技术标签:

【中文标题】如何使用 Espresso 测试片段是不是可见【英文标题】:How to test if a fragment is visible with Espresso如何使用 Espresso 测试片段是否可见 【发布时间】:2019-02-02 07:51:47 【问题描述】:

我用一个按钮写了一个非常简单的Activity。单击按钮时,我将启动一个新的Fragment。现在我想在我的 Espresso UI 测试中测试这个逻辑。所以我为我的Activity写了这个 UI 测试

@RunWith(androidJUnit4::class)
@LargeTest
class MainMenuUiTest 

@get: Rule
val activityTestRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)

 @Test
 fun switchToFragment() 
     onView(withId(R.id.btn)).perform()
 

如何测试单击按钮时我的Fragment 是否显示?

【问题讨论】:

【参考方案1】:

尝试以下方法:

@Test
fun switchToFragment() 
    onView(withId(R.id.btn)).perform(click())
    onView(withId(R.id.fragment)).check(matches(isDisplayed()))

如果您刚刚了解 Espresso,official guide 是一个不错的起点。另外,这里是Espresso cheat sheet。

【讨论】:

以上是关于如何使用 Espresso 测试片段是不是可见的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Espresso 将时间设置为 MaterialDateTimePicker

如何使用 IntentsTestRule 和 launchFragmentInContainer 测试从片段发送的意图

如何 UI 测试偏好片段

如何使用 Espresso 测试特定活动?

Android espresso 无法导航到其他 Fragment?

Espresso:如何测试 SwipeRefreshLayout?