【问题标题】:How to check from Robotium that my png is present on the screen?如何从 Robotium 检查我的 png 是否出现在屏幕上?
【发布时间】:2014-10-13 17:03:52
【问题描述】:

我创建了一个额外的方法:

public boolean exampleEdTxt1(){
 try{
  solo.getCurrentActivity().getResources().getDrawable(R.drawable.action_drw);
  return true;
 }
 catch(AssertionError e){
  return false;
 }
}

但是,当测试运行时,代码

assertTrue(exampleEdTxt1());

总是返回成功和代码

assertFalse(exampleEdTxt1());

总是返回失败。

如何从 Robotium 检查我的 png 是否出现在屏幕上?

【问题讨论】:

    标签: java android android-drawable robotium


    【解决方案1】:

    尝试使用 .isShown()

    solo.getCurrentActivity().getResources().getDrawable(R.drawable.action_drw).isShown();
    

    我用来检查我的图像是否显示的这个断言:

    assertEquals(true, solo.getCurrentActivity().findViewById(R.id.getting_started_image_1).isShown());
    

    希望对你有帮助

    我在这里检查 imageView

    Boolean isVisible = (Boolean) solo.getCurrentActivity().findViewById(R.id.imageView1).isShown();
            assertTrue(isVisible);
    

    这里是检查可绘制的(图像)

    Boolean isVisible2 = (Boolean) solo.getCurrentActivity().getResources().getDrawable(R.drawable.image).isVisible();
            assertTrue(isVisible2);
    

    我使用的xml中的imageView:

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="186dp"
        android:layout_height="90dp"
        android:src="@drawable/image" />
    

    【讨论】:

    • 不幸的是,这个方法失败了。 “isShown()”IDE 以红色突出显示消息:“无法解析方法 'isShown()'”。虽然我成功使用了代码:assertTrue(solo.getView(R.id.action_search).isShown());但是如果我尝试检查: assertEquals(false,getActivity().getResources().getDrawable(R.drawable.edit_btn).isVisible());测试落在此行并出现错误:预期:但是:
    • For Boolean isVisible2 = (Boolean) solo.getCurrentActivity().getResources().getDrawable(R.drawable.image).isVisible();代码 assertTrue(isVisible2); - 总是返回成功(即使屏幕上没有可绘制对象)和代码 assertFalse(isVisible2); - 总是返回失败。
    • Drawable.isVisible() 方法返回可见性的内部状态(当你明确地说 imageView.setVisible(true) 时,你得到的是真的)但不检查 id drawable 是否显示在屏幕上。跨度>
    【解决方案2】:

    对于

    Boolean isVisible2 = (Boolean) solo.getCurrentActivity().getResources().getDrawable(R.drawable.image).isVisible();
    

    代码

    assertTrue(isVisible2);
    

    总是返回成功(即使屏幕上没有可绘制对象)和代码

    assertFalse(isVisible2);
    

    总是返回失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-02
      • 2021-01-19
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多