gpt4 book ai didi

android - 如何在单元测试中接受对话?

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:22 25 4
gpt4 key购买 nike

我有一个单元测试可以打开自定义对话框并输入一些文本。这有效,但我无法接受对话框或按下确定按钮。谁能告诉我如何使用 junit 自动接受对话。

    ActivityMonitor activityMonitor = instrumentation.addMonitor(
EditItem.class.getName(), null, false);

instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
instrumentation.invokeContextMenuAction(gridList, R.id.add, 0);

Activity activity = instrumentation.waitForMonitorWithTimeout(
activityMonitor, 10);
assertNotNull("Make sure the edit item activity was called", activity);
assertEquals("Make sure the edit item activity was called",
EditItem.class, activity.getClass());

final TextView nameView = (TextView) activity.findViewById(R.id.name);

// this opens the dialog
TouchUtils.clickView(this, nameView);

// this adds some text
for (int i = 0; i < 3; i++)
{
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_X);
}

// here I would like to accept the ok button on the dialog

好吧,我似乎已经通过组合按键解决了这个问题

    instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);

现在的问题是我无法判断对话框何时完成关闭并返回到父 Activity 以继续测试

            instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);

现在也解决这个问题:

            instrumentation.waitForIdleSync();
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);

看起来有点笨拙,这是您应该如何使用这些工具吗?

最佳答案

我遇到了同样的问题。它看起来像是您必须创建一个自定义对话框。这将允许您检索使用 findViewById() 添加的按钮。这是我发现的一个链接,它可能会让您走上正确的道路。

http://www.mkyong.com/android/android-custom-dialog-example/

关于android - 如何在单元测试中接受对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758930/

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