2017-12-18 141 views
1

我想在運行所有測試之前調用一些方法。 庫提供初始化它準備設備的使用方法:在所有junit測試之前運行一次性異步回調

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

     } 
    }); 

庫準備就緒時onFinish被稱爲使用。

不能模擬庫類(proguard在使用),所以我必須使用該初始化程序爲我的JUnit tests

有什麼辦法可以等到回調onFinish()被調用?

ShadowApplication.runBackgroundTasks();和Semaphore一起嘗試,但似乎沒有工作。 我使用@BeforeClass註釋在所有測試之前運行它。

回答

1

你需要的是擴大AndroidJUnitRunner,然後將其詮釋build.gradle文件中像

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

編輯

如果你看一下source你會看到onCreate方法被調用一次。你想要做的是不支持這種方法,並添加你自己的邏輯。然後當你完成後,你應該打電話start()方法。

+0

我不明白它如何解決我的問題。你能舉個例子嗎? – user1558070

相關問題