【发布时间】:2013-11-22 12:13:53
【问题描述】:
我正在尝试使用必须测试的以下代码来解决问题: 我正在使用 Mockito 和 Robotium 来解决大多数测试用例。 问题是通过以下方式启动的请求对话框来模拟用户的回答:
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, BluetoothAdapterService.REQ_BT_ENABLE);
答案被缓存
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) { /*TODO: für 1 eine Konstante verwenden, hier und in der aufrufenden Funktion*/
if (resultCode == BluetoothAdapterService.REQ_BT_ENABLE) { /*TODO RequestCode == ResultCode dh. der COde kann hier optimiert werden*/
btAdapterService.setBluetoothState(BluetoothAdapterService.ON);
}
else {
btAdapterService.setBluetoothState(BluetoothAdapterService.OFF); /* Wenn keine Verbindung aufgebaut werden konnte, oder die Aktivierungsaufforderung des -> */ /* BT-Adapters mit nein quittiert wurde, ist der resultCode = RESULT_CANCELD = 0 */
}
}
}
我已经尝试了一些解决方案来获得在测试期间显示的按钮被点击,但是虽然我使用的是机器人我无法访问按钮
solo.clickOnText("No");
是否也可以将请求粘贴到另一个类并为其调用方法?这样我就可以以不同的方式重用请求?我试过了,但后来我遇到了没有请求出现的问题,我得到了一个例外。
我不是一个深度程序员,我已经开始了解这个话题。我将不胜感激。
【问题讨论】:
-
你打算用蓝牙适配器做什么?
-
根据蓝牙状态,用户会获得上面列出的用户对话框来激活 BT。它是由意图开始的。当我得到这个对话框时,我希望能够通过回调函数选择打开或关闭。也许 Robotium 有一个更简单的方法,但直到现在我还没有找到这个特殊的对话框和他的按钮。
-
所以你要打开/关闭蓝牙吗?
-
是的,通过请求的意图。蓝牙适配器的转码是已知的。我不明白如何对蓝牙适配器自己给出的用户对话框做出反应(API 谈论系统活动)。
标签: android mocking android-activity mockito robotium