我想在运行所有测试之前调用一些方法。
库提供了要使用的准备设备的初始化程序:
SomeLibraryInitializer.init(new SomeLibraryInitializer.Callback() {
@Override
public void onFinish() {
}
});
调用onFinish时即可使用该库。
无法模拟库类(正在使用proguard),因此我必须在
JUnit tests
中使用该初始化程序。有什么方法可以等到回调
onFinish()
被调用?尝试使用
ShadowApplication.runBackgroundTasks();
和Semaphore,但似乎不起作用。我正在使用
@BeforeClass
批注在所有测试之前运行它。 最佳答案
您想要的是扩展AndroidJUnitRunner,然后将其设置为int build.gradle
文件,例如
android {
defaultConfig {
testInstrumentationRunner "com.example.MyTestRunner"
}
}
编辑
如果查看source,将看到被调用一次的
onCreate
方法。您想要做的就是添加此方法,并在其中添加自己的逻辑。然后,当您完成操作后,应致电start()
方法。