Java Espresso ViewAssertions-检查是否为空

Java Espresso ViewAssertions-检查是否为空,java,android,android-espresso,Java,Android,Android Espresso,我正在进行浓缩咖啡测试,我想测试两项: 单击片段X中的按钮 TextView包含活动Y中的文本 代码: @RunWith(AndroidJUnit4.class) 公共类异步测试{ 私有静态最终字符串TEST_TEXT=“TEST_TEXT”; @统治 public ActivityTestRule mActivity=新ActivityTestRule(MainActivity.class); @试验 公共无效证明文件多个(){ 浓缩咖啡onView(ViewMatchers.withId(R

我正在进行浓缩咖啡测试,我想测试两项:

  • 单击片段X中的按钮
  • TextView包含活动Y中的文本
  • 代码:

    @RunWith(AndroidJUnit4.class)
    公共类异步测试{
    私有静态最终字符串TEST_TEXT=“TEST_TEXT”;
    @统治
    public ActivityTestRule mActivity=新ActivityTestRule(MainActivity.class);
    @试验
    公共无效证明文件多个(){
    浓缩咖啡onView(ViewMatchers.withId(R.id.first_按钮))
    .执行(ViewActions.click());
    /*如何检查文本是否已填充*/
    浓缩咖啡onView(ViewMatchers.withId(R.id.random_笑话))
    .检查();
    }
    
    匹配(isDisplayed())
    至少会检查视图是否正在显示-而人们几乎无法检查随机笑话的文本,其中人们会假设一些随机文本…除非加载特定文本用于测试目的,该文本是已知的-并且可以进行比较/匹配(正如最近在RecyclerView回答中所解释的那样,
    ActivityTestRule
    可用于传递一个
    ITEM\u ID
    ,以便有一个特定的项来比较视图)


    人们不必使用浓缩咖啡,但可以尝试
    findViewById()
    ,然后
    assertNotNull()

    不使用null怎么样?
    @RunWith(AndroidJUnit4.class)
    public class AsyncTest {
    
        private static final String TEST_TEXT = "TEST_TEXT";
    
        @Rule
        public ActivityTestRule<MainActivity> mActivity = new ActivityTestRule(MainActivity.class);
    
        @Test
        public void testIfResultIsEmpty() {
    
            Espresso.onView(ViewMatchers.withId(R.id.first_button))
              .perform(ViewActions.click());
    
            /* How do I check that text has populated? */
            Espresso.onView(ViewMatchers.withId(R.id.random_joke))
             .check();
     }
    
    onView(withId(R.id.random_joke)).check(matches(isDisplayed()));