2013-11-22 4 views
2

다음 코드를 사용하여 문제를 해결하려고합니다. 대부분의 테스트 사례를 해결하기 위해 Mockito와 Robotium을 사용하고 있습니다. 문제는 요청 대화 상자에 의해 사용자로부터 대답을 조롱하는 것입니다 통해 시작 :BluetoothAdapter.ACTION_REQUEST_ENABLE을 모의하는 방법

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"); 

에 의해 버튼이 다른 클래스로 요청을 붙여 넣기하고 나에게 전화하는 것도 가능 액세서 캔트 그것을 위해 thod? 그래서 다른 방법으로 요청을 재사용 할 수 있습니까? 나는 이것을 시도했지만 아무런 요청이 나타나지 않고 예외가 발생하는 문제가 발생했습니다.

나는 프로그래머가 아니기 때문에이 주제를 알고 시작했습니다. 모든 도움에 감사드립니다.

+0

블루투스 어댑터로 무엇을 할 것입니까? – maszter

+0

Bluetooth 상태에 따라 사용자는 위에 나열된 사용자 대화 상자를 가져와 BT를 활성화합니다. 그것은 의도에 의해 시작되었습니다. 이 대화 상자에서 콜백 함수를 통해 on 또는 off를 선택할 수 있기를 원합니다. 어쩌면 Robotium에서 더 쉬운 방법이 있을지 모르지만 지금까지는이 특별한 대화 상자와 버튼을 얻지 못했다. – user2955547

+0

블루투스를 켜거나 끄시겠습니까? – maszter

답변

1

테스트의 목적이 무엇인지 알 수 없습니다. 나에 관해서는 코드가 사용자의 대답을 올바르게 처리하는지 확인하는 것처럼 들린다.

내게는 onActivityResult(1,BluetoothAdapterService.REQ_BT_ENABLE)으로 전화를 걸어 블루투스가 활성화되었는지 확인하는 것으로 충분할 것입니다.

+0

테스트 컨텍스트에서 ** onActivityResult **를 알 수 없으므로 _onActivityResult (1, BluetoothAdapterService.REQ_BT_ENABLE) _ 을 실행하면 문제가 해결되지 않습니다. 아마 ** mActivity.onActivityResult (1, 1, 새로운 인 텐트 (BluetoothAdapter.ACTION_REQUEST_ENABLE)) ** ** 을 의미 할 수 있습니다. 그러나 이것을 사용하려면 보호 된 선언문을 제거해야하며 여전히 작동하지 않습니다. – user2955547

+0

물론 보호 된 메소드를 호출 할 공용 함수를 만들 수 있습니다. 그러나 이것은 이미 테스트 클래스에 많이 있습니다. 나는 단위 테스트와 함께 그것을하는 방법에 대한 접근 방식으로 대답을 쓰고 있었다. 나는 도구 테스트에 많은 경험이 없습니다. –

+0

좋습니다. 나는 또한 단위 테스트에서 그것을 시도 할 수 있습니다. 나는 가능한 한 빨리 보고서를 줄 것이다. – user2955547

관련 문제