如何模拟BluetoothAdapter.ACTION_REQUEST_ENABLE

时间:2013-11-22 12:13:53

标签: android mocking android-activity mockito robotium

我正在尝试使用以下代码解决问题,我必须测试: 我正在使用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");

是否也可以将请求粘贴到另一个类中并为其调用方法?这样我可以以不同的方式重用请求?我尝试了这个,但后来我遇到了没有请求出现的问题,我得到了一个例外。

我不是一个不知名的程序员,我已经开始了解这个主题。我很感激每一个帮助。

1 个答案:

答案 0 :(得分:1)

我不知道你的测试的目的是什么。至于我,听起来你想确保你的代码正确处理用户的答案。

所以对我而言,只需拨打onActivityResult(1,BluetoothAdapterService.REQ_BT_ENABLE)并在启用蓝牙后检查即可。