2013-08-04 3 views
2

내 활동을 테스트하려고했지만 Android JUnit 프로젝트를 실행하려고하면이 스택이 시작될 때 실패합니다. 추적 :junit.framework.AssertionFailedError : 예외 : testMethod (java.lang.NullPointerException)

junit.framework.AssertionFailedError: Exception in constructor: test (java.lang.NullPointerException 
at android.test.ActivityInstrumentationTestCase2.getActivity(ActivityInstrumentationTestCase2.java:100) 
at com.sogemobile.saytv.api.UploadAvatarTest2.<init>(UploadAvatarTest2.java:16) 
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
at junit.runner.BaseTestRunner.getTest(BaseTestRunner.java:118) 
at android.test.AndroidTestRunner.getTest(AndroidTestRunner.java:148) 
at android.test.AndroidTestRunner.setTestClassName(AndroidTestRunner.java:56) 
at android.test.suitebuilder.TestSuiteBuilder.addTestClassByName(TestSuiteBuilder.java:80) 
at android.test.InstrumentationTestRunner.parseTestClass(InstrumentationTestRunner.java:444) 
at android.test.InstrumentationTestRunner.parseTestClasses(InstrumentationTestRunner.java:425) 
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:370) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4382) 
at android.app.ActivityThread.access$1300(ActivityThread.java:141) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5039) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
at dalvik.system.NativeStart.main(Native Method) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) 
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661) 

내 테스트 코드는 다음과 같습니다

public class UploadAvatarTest2 extends ActivityInstrumentationTestCase2<EmptyActivity_> { 

    public UploadAvatarTest2() { 
     super(EmptyActivity_.class); 
     getActivity(); 
    } 

    public void test(){ 
    } 

} 

나는 문제가 "getActivity()"호출 것으로 나타났습니다. "super (EmptyActivity_.class)"에 중단 점을 배치하면 디버거가 멈추지 않습니다. 하지만 "getActivity()"문자열 디버거를 제거하면 중지됩니다. 그것은 환상적으로 보이지만 사실이야 :) 나는 이클립스/에뮬레이터를 다시 시작하려고했지만 아무런 영향을 미치지 않는다.

문제를 해결하려면 어떻게해야합니까? :(

+0

솔루션을 찾았습니까? – Androiderson

답변

0

. 생성자에서 getActivity() 메서드를 호출 재정의 설정 방법, 그것을 사용하지 마십시오.

@Override 

public void setUp(){ 
super.setUp(); 
currentActivity=getActivity(); 
... 
... 
} 

더 진행합니다.

개인 개체로 클래스 currentActivity 선언 EmptyActivity_

관련 문제