我正试图用以下代码来解决问题,我必须测试这些代码:我使用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 */
}
}
}
我已经尝试了一些解决方案来点击测试中出现的按钮,但尽管我使用的是robotium,但我无法通过访问按钮
solo.clickOnText("No");
是否也可以将请求粘贴到另一个类中并为其调用方法?这样我就可以以不同的方式重用请求了?我试过了,但后来我遇到了一个问题,没有请求出现,我得到了一个例外。
我不是一个独立的程序员,我已经开始了解这个话题了。我将感谢您的帮助。
我不知道测试的目的是什么。对我来说,这听起来像是您希望确保您的代码正确处理用户的答案。
所以对我来说,只要打电话给onActivityResult(1,BluetoothAdapterService.REQ_BT_ENABLE)
并在蓝牙启用后进行检查就足够了。