相关疑难解决方法(0)

Kotlin Multiplatform:如何在 iOS 单元测试中模拟对象

我正在开发适用于 iOS/Android 的 Kotlin 多平台 (KMP) 库。我已经为 JVM 编写了一些单元测试,为此我使用MockK来创建间谍和模拟,但 MockK 尚不完全支持 Kotlin 本机。

因此,我想知道其他从事 KMP 项目的人是如何为 iOS 平台编写单元测试的。一个例子将不胜感激。

android unit-testing ios kotlin kotlin-multiplatform

12
推荐指数
2
解决办法
1370
查看次数

使用多平台模拟 kotlin 中的常见测试

我无法将通用模拟库 (mockk.io) 与 kotlin 多平台一起使用。在他们的网站上,它说要在 kotlin 多平台中使用 mockk,你只需要将这一行添加到你的 gradle 中。testImplementation "io.mockk:mockk-common:{version}"

我添加了它并且它正常构建,只有当我想使用它时它才会失败。给予

Unresolved reference: io
Unresolved reference: mockk
Run Code Online (Sandbox Code Playgroud)

我的 gradle 文件


kotlin {
    val hostOs = System.getProperty("os.name")
    val isMingwX64 = hostOs.startsWith("Windows")
    val nativeTarget = when {
        hostOs == "Mac OS X" -> macosX64("native")
        hostOs == "Linux" -> linuxX64("native")
        isMingwX64 -> mingwX64("native")
        else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
    }

    nativeTarget.apply {
        binaries {
            executable {
                entryPoint = "main"
            }
        }
    }
    sourceSets {
        val nativeMain by …
Run Code Online (Sandbox Code Playgroud)

gradle kotlin kotlin-multiplatform mockk

4
推荐指数
1
解决办法
1634
查看次数