我想在运行所有测试之前调用一些方法。 Library提供初始化程序,准备使用设备:
SomeLibraryInitializer.init(new SomeLibraryInitializer.Callback() {
@Override
public void onFinish() {
}
});
当调用onFinish时,库可以使用了。
无法模拟库类(使用中的proguard),因此我必须为我的JUnit tests
使用该初始化程序。
有没有办法等到调用回调onFinish()
?
尝试使用ShadowApplication.runBackgroundTasks();
和Semaphore,但似乎无法正常工作。
我正在使用@BeforeClass
Annotation在所有测试之前运行它。
答案 0 :(得分:1)
你想要的是扩展AndroidJUnitRunner,然后将其设置为build.gradle
文件,如
android {
defaultConfig {
testInstrumentationRunner "com.example.MyTestRunner"
}
}
修改强>
如果查看source,您会看到一次调用的onCreate
方法。你想要做的是改变这种方法并在其中添加自己的逻辑。然后,当你完成后,你应该拨打start()
方法。