2014-03-04 2 views
0

2 액티비티를 포함하는 간단한 Android 앱을 작성했습니다 : 1) Login.java- 사용자 이름과 비밀번호를 받아 사용자를 다른 활동으로 안내합니다. DisplayMessageActivity.java Android : JUnit 테스트 : junit.framework.AssertionFailedError : 의도가 null

2) 사용자가 정확한 의도가 있는지 여부를 테스트하기위한 I 간단한 테스트 MainActivityUnitTest.java 쓴

다음 지시 된 후 다시 두 번째 화면에 표시되는 작업을 DisplayMessageActivity.java- getStartedActivityIntent() 메소드를 통해 트리거 됨

I 수동으로 안드로이드 휴대 전화에서 테스트를하고 난의 JUnit은 공개 테스트로 MainActivityUnitTest.java을 실행할 때, 그러나, 작동 : junit.framework.AssertionFailedError :

assertNotNull("Intent was null", triggeredIntent); 
: 의도는이 라인에서

null입니다

MainActivityUnitTest.java

public class MainActivityUnitTest extends 
android.test.ActivityUnitTestCase<Login> { 

private int buttonId; 
private Login activity; 

public MainActivityUnitTest() { 
super(Login.class); 
} 

@Override 
protected void setUp() throws Exception { 
super.setUp(); 
Intent intent = new Intent(getInstrumentation().getTargetContext(), 
    Login.class); 
startActivity(intent, null, null); 
activity = getActivity(); 
} 


public void testLayout(){ 
    //buttonId = com.example.myfirstapp2.MainActivity.R.id.button1; 
    //assertNotNull(activity.findViewById(buttonId)); 

    Button view = (Button)activity.findViewById(R.id.btnLogin); 
    assertEquals("Incorrect label of the button", "Login", view.getText()); 

} 

public void testIntentTriggerViaOnClick() { 

    Button view = (Button)activity.findViewById(R.id.btnLogin); 
    assertNotNull("Button not allowed to be null", view); 

    view.performClick(); 
    Intent triggeredIntent = getStartedActivityIntent(); 
    assertNotNull("Intent was null", triggeredIntent); 

    String data = triggeredIntent.getExtras().getString("URL"); 

    assertEquals("Incorrect data passed via the intent", 
     "1http://www.vogella.com", data); 
    } 



    } 

도와주세요

답변

0

로그인 활동은 시험을 받고있다.

getStartedActivityIntent를 호출하기 전에이 활동이 시작 활동을 호출합니까?

public Intent getStartedActivityIntent()

Added in API level 1 This method will return the launch intent if your Activity under test calls startActivity(Intent) or startActivityForResult(Intent, int).

Returns The Intent provided in the start call, or null if no start call was made.

+0

예 do view.performClick(); \t 인 텐트 triggeredIntent = getStartedActivityIntent(); – user3238961

+0

그러나, 로그인 활동이 startActivity를 호출 개인 클래스 LongOperation은 AsyncTask를 확장 내부는 <문자열, 무효, 무효> { 개인 클래스 LongOperation은 AsyncTask를 <문자열, 무효, 무효> 나는대로 { 블록 를 확장 웹 서비스 구문 분석하기 – user3238961

관련 문제