我需要在每次测试之前清空用户的数据
// Kotlin code
fun getActivity() = activityRule.getActivity()
Before
fun setUp() {
cleanUp(getActivity())
}
我需要获取一个Context才能这样做,但是在setUp中,activityRule.getActivity()返回null。
我也尝试过:
Before
fun setUp() {
val i = Intent()
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
activityRule.lauchActivity(i)
cleanUp(getActivity())
}
我有一项活动,但cleanUp的工作时间只有一半(我相信某些竞争条件适用于此处)
我想避免在After函数中使用cleanUp,以便在需要时手动查看我的应用程序状态。
无论如何在Before函数中获取上下文?
由于
答案 0 :(得分:10)
您可以从InstrumentationRegistry
获取生产应用上下文,如下所示:
InstrumentationRegistry.getTargetContext()
请记住:InstrumentationRegistry.getContext()
是测试apk的上下文。
答案 1 :(得分:0)
在撰写本文时,InstrumentationRegistry
已过时。
我改用ApplicationProvider.getApplicationContext<Application>()
库中的androidx.test
。
相关性为:androidTestImplementation "androidx.test.espresso:espresso-core:3.1.1"