1

我有一个简单的测试用例,我试图在单击另一个视图时验证是否正在加载特定视图

public class SimpleActivityTest extends ActivityInstrumentationTestCase2<SimpleActivity> {

private SimpleActivity mActivity;

public SimpleActivityTest() {
    super(SimpleActivity.class);
}

@Override
public void setUp() throws Exception {
    super.setUp();
    mActivity = getActivity();
}

@SmallTest
public void testBrushToolbar() {
    View rootView = mActivity.getWindow().getDecorView();
    View brush = mActivity.findViewById(R.id.brush1);

    TouchUtils.clickView(this, brush);

    ViewAsserts.assertOnScreen(rootView, mActivity.findViewById(R.id.container));
    }
}

当我在 Android Studio 中使用Run选项时,上述测试失败。主要是因为TouchUtils.clickView()似乎根本没有做任何事情,并且从未加载新视图。

但是,当我使用Debug选项时,即使没有设置任何断点,同样的测试也会通过!

我尝试添加一个Thread.sleep()然后运行测试,但即使这样也没有帮助。关于为什么会发生这种情况的任何想法?

PS:我在 Android Studio 1.3.1 上运行

更新:即使我从命令行运行,测试也会失败

$ gradle installDebug installDebugAndroidTest && adb shell am instrument -w -e class com.mypackage.test.SimpleActivityTest#testBrushToolbar com.mypackage.test/android.test.InstrumentationTestRunner 
4

0 回答 0