2017-12-18 131 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

相关问题