我有一个简单的测试用例,我试图在单击另一个视图时验证是否正在加载特定视图
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