在所有junit测试之前运行一次性异步回调

问题描述 投票:1回答:1

我想在运行所有测试之前调用一些方法。库提供初始化程序,准备使用的设备:

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

        }
    });

当调用onFinish时,库可以使用了。

不能模拟库类(使用中的proguard),所以我必须为我的JUnit tests使用该初始化程序。

有没有办法等到回调onFinish()被召唤?

尝试与ShadowApplication.runBackgroundTasks();和信号量,但似乎没有工作。我正在使用@BeforeClass Annotation在所有测试之前运行它。

android junit robolectric
1个回答
1
投票

你想要的是扩展AndroidJUnitRunner,然后将其设置为build.gradle文件

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

编辑

如果你看看source,你会看到被调用一次的onCreate方法。你想要做的是改变这种方法并在其中添加自己的逻辑。然后,当你完成后,你应该打电话给start()方法。

© www.soinside.com 2019 - 2024. All rights reserved.