Fed*_*ani 5 android adb android-testing koin
尝试在我的设备上调试 androidTests 时出现以下错误。出现的唯一错误如下,测试将永远挂起,直到我停止它。如果我运行它,测试就完成了,问题是当我尝试调试它时。我已经尝试过:
这是我在 logcat 中看到的错误:
W/ting.ventasplu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
A/ting.ventasplu:nstrumentation.cc:267] Check failed: m == frame.method_ (m=0xb0a66f30, frame.method_=0x6fac48ac) Expected void java.lang.Object.wait(long, int), Found void java.lang.Object.wait(long, int)
Run Code Online (Sandbox Code Playgroud)
这是InstrumentedTestCode:
@RunWith(AndroidJUnit4::class)
class LoginActivity2InstrumentedTest {
lateinit var scenario: ActivityScenario<LoginActivity>
val viewModel: LoginViewModel = mockk(relaxed = true)
val app: KoinTestVentasPlusApplication = ApplicationProvider.getApplicationContext()
@After
fun cleanup() {
scenario.close()
}
@Test
@SmallTest
fun test() {
app.loadModules(listOf(module { single (override = true) {viewModel} })) {
scenario = launchActivity()
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用自定义测试运行程序:
class KoinTestRunner: AndroidJUnitRunner() {
override fun newApplication(cl: ClassLoader?, className: String?, context: Context?): Application {
return super.newApplication(
cl, KoinTestVentasPlusApplication::class.java.name, context
)
}
}
Run Code Online (Sandbox Code Playgroud)
这是自定义应用程序代码:
class KoinTestVentasPlusApplication: Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidLogger()
androidContext(this@KoinTestVentasPlusApplication)
modules(emptyList())
}
}
internal fun loadModules(modules: List<Module>, block: () -> Unit) {
loadKoinModules(modules)
block()
unloadKoinModules(modules)
}
}
Run Code Online (Sandbox Code Playgroud)
这是上述库的 gradle 文件中的依赖项:
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.1'
androidTestImplementation 'androidx.test:core-ktx:1.2.0'
androidTestImplementation ("org.koin:koin-test:$project.koin"){ exclude group: 'org.mockito' }
androidTestImplementation "io.mockk:mockk-android:1.9.2"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |