我正在尝试在 KMM 的 shared
模块中编写测试项目。在共享模块的 build.gradle.kts 文件中,我有以下内容:
sourceSets {
val commonMain by getting
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
//TODO: Hamcrest
//implementation("junit:junit:4.12")
//implementation("org.hamcrest:hamcrest-library:1.3")
//TODO: Mockk
//implementation("io.mockk:mockk:1.10.4")
}
}
//...
}
我也试过:
implementation(kotlin("[library]"))
结果相同:IDE 不再识别测试,我无法运行它们。
最佳答案
不幸的是,没有支持 K/N 的模拟库 (AFAIK)。
这是 Mockk's K/N和 Mockk's K/JS问题以供将来引用,或者您也可以查看 Touchlab's Karmok
对于 Hamcrest,请参阅他们的问题 here
编辑/更新
在 2022 年,上述答案不再成立。 Mockk现在支持共享模块中的模拟。请在这里查看mockk.io添加以下依赖项,你应该可以开始了
testImplementation "io.mockk:mockk-common:{version}"
模拟体验是无缝的,就像常规的 Android 单元测试用例一样。
关于kotlin - 用于 Kotlin 多平台移动设备的 Hamcrest 和 Mockk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65561205/