gpt4 book ai didi

android - Android 测试中 TouchUtils.clickView() 和 Button.performClick() 的区别?

转载 作者:行者123 更新时间:2023-11-29 01:39:11 24 4
gpt4 key购买 nike

我正在使用 ActivityInstrumentationTestCase2 为我的应用编写集成测试,我正在测试按钮是否正确地增加了我的 UI 中的计数器。

基本测试只是获取按钮点击前后显示在 TextView 中的值。

在一个版本中,我用@UiThreadTest 标记测试方法,然后像这样运行测试

int value1;
int value2;
value1=(int) myText.getTheValue();
myButton.performClick();
value2=(int) myText.getTheValue();
assertEquals(value1 + 1, value2);

一切正常,测试通过。

第二种方法,我不使用@UiThreadTest,而是使用

TouchUtils.clickView(this, myButton);

在这种情况下断言失败,因为 value1 等于 value2。我不确定那是因为 OnClickListener 没有触发,没有按下按钮,还是因为 TouchUtils.clickView 在 UI 线程上运行,并且测试在处理程序增加 textview 的值之前读取了 value2 的值.单击后我尝试了 Thread.sleep(1000) 以查看它是否只需要一些时间,但得到了相同的结果。

如果您想检查单击对 Activity 的其他 UI 元素的影响,有人可以解释使用 TouchUtils 的正确方法吗?

谢谢。

最佳答案

protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);

}

你需要保持你的初始触摸为假然后使用 TouchUtils.clickView()

关于android - Android 测试中 TouchUtils.clickView() 和 Button.performClick() 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25857550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com