2017-12-18 10 views
1

모든 테스트를 실행하기 전에 몇 가지 메소드를 호출하고 싶습니다.모든 junit 테스트 전에 한 번만 비동기 콜백을 실행하십시오.

SomeLibraryInitializer.init(new SomeLibraryInitializer.Callback() { 
     @Override 
     public void onFinish() { 

     } 
    }); 

라이브러리는 onFinish를 호출 할 때 사용할 수 있습니다 : 라이브러리 장치를 사용할 준비 초기화를 제공합니다.

라이브러리 클래스 (proguard 사용 중)를 모의 할 수 없으므로이 초기화 도구를 JUnit tests에 사용해야합니다.

콜백 onFinish()이 호출 될 때까지 기다리는 방법이 있습니까?

ShadowApplication.runBackgroundTasks(); 및 세마포어로 시도했지만 작동하지 않는 것 같습니다. 모든 테스트를 수행하기 전에 @BeforeClass Annotation을 사용하고 있습니다.

답변

1

은 당신이 원하는 것은 AndroidJUnitRunner을 확장 한 다음 한 번이라고 onCreate 방법을 보게 될 source 보면이

android { 
    defaultConfig { 
     testInstrumentationRunner "com.example.MyTestRunner" 
    } 
} 

편집

같은 build.gradle 파일을 int로 설정하는 것입니다. 당신이하고 싶은 것은이 메소드를 owerride로 만들고 그 안에 자신 만의 로직을 추가하는 것입니다. 그럼 당신이 완료되면 start() metho 전화해야합니다.

+0

내 문제를 어떻게 해결할 수 있는지 이해할 수 없습니다. 예를 들어 주시겠습니까? – user1558070