2012-08-29 2 views
0

NFC 태그와 접촉 할 때 특정 기능을 호출하는 Android 활동이 있습니다. 나는 그것을위한 테스트를 만들고 싶다.ACTION_TAG_DISCOVERED를 (를) 테스트하려면 어떻게해야합니까?

:

내 코드에서
// Create a ACTION_TAG_DISCOVERED 
// Respond to ACTION_TAG_DISCOVERED 
public void testNfc(){ 

} 

, 내가 콜백 함수 때 NFC 태그에 근접에서 만든 의도로 보인다 "onNewIntent"가 다음과 같이 내 테스트 파일에서

, 내 논리는

protected void onNewIntent(Intent intent) { 
    if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { ... } 

그러나 테스트 코드에서 ACTION_TAG_DISCOVERED의 의도를 만들 수 없습니다. 나는 클래스 here을 보았다.

ACTION_TAG_DISCOVERED 인 텐트를 만들면 테스트 할 수 있습니까? 이 줄의 어딘가에 :

Intent nfcIntent = new Intent(Intent.ACTION_TAG_DISCOVERED) 
if(nfcIntent == ACTION_TAG_DISCOVERED) 
assertSomeMethod("functionWhichHandlesNFCTagDiscovered") 

감사합니다.

+0

"내 테스트 코드에서 ACTION_TAG_DISCOVERED의 의도를 만들 수 없습니다." 왜, 당신이 쓴 것을한다면 어떻게 될까요? – you786

+0

이것은 의사 코드이며 Intent.ACTION_TAG_DISCOVERED는 존재하지 않습니다. – okysabeni

+0

왜 Android에 이미있는 메커니즘을 테스트하고 싶습니까? 인 텐트 파견 시스템이 거기에 있으며, 그 작업, 당신이 그것을 테스트하는 이유는 무엇입니까? 그리고 만약 당신이 방금 당신의 방법을 테스트하고 싶다면, 그 코드를 스텁하여 코드에서 불러내거나 (단순히 물리적 인 장치와 태그를 사용하십시오) –

답변

1

시도 : ACTION_TAG_DISCOVERED

나는 그것을 테스트하지 않은,하지만 당신이 의도과 같이 할 경우 :

Intent intent = new Intent(NfcAdapter.ACTION_TAG_DISCOVERED); 
intent.putExtra(NfcAdapter.EXTRA_TAG, ""); 
... 
intent.putByteArrayExtra(NfcAdapter.EXTRA_ID); 
//etc. 

당신은 당신이 설명한 것을 할 수 있습니다.

0

실제 장치에서 태그를 스캔해야합니다. 에뮬레이터는 알고있는 한 NFC를 지원하지 않습니다. 이 사용

관련 문제