java.lang.IllegalStateException for robolectric

问题描述

我正在为 shard pref 编写本地单元测试,我有三个测试用例,比我得到的一次通过

java.lang.IllegalStateException:已经初始化

at com.yariksoffice.lingver.Lingver$Companion.init(Lingver.kt:192)
at com.yariksoffice.lingver.Lingver$Companion.init(Lingver.kt:182)
at com.myholding.my.common.myApplication.onCreate(myApplication.kt:27)
at org.robolectric.android.internal.AndroidTestEnvironment.lambda$installAndCreateApplication$0(AndroidTestEnvironment.java:288)
at org.robolectric.util.PerfStatsCollector.measure(PerfStatsCollector.java:86)
at org.robolectric.android.internal.AndroidTestEnvironment.installAndCreateApplication(AndroidTestEnvironment.java:288)
at org.robolectric.android.internal.AndroidTestEnvironment.setUpApplicationState(AndroidTestEnvironment.java:171)
at org.robolectric.RobolectricTestRunner.beforeTest(RobolectricTestRunner.java:319)
at org.robolectric.internal.SandBoxTestRunner$2.lambda$evaluate$0(SandBoxTestRunner.java:269)
at org.robolectric.internal.bytecode.SandBox.lambda$runOnMainThread$0(SandBox.java:89)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

  @RunWith(AndroidJUnit4::class)
        class SessionLocalDataSourceImpTest {
            lateinit var SessionLocalDataSourceImp: SessionLocalDataSourceImp
             
        @Before
                fun setUp() {
                    val context = ApplicationProvider.getApplicationContext<MyApplication>()
                    val sharedPreferences = context.getSharedPreferences(
                        "prefs",MODE_PRIVATE
                    )
                    SessionLocalDataSourceImp = SessionLocalDataSourceImp(sharedPreferences)
                }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)