unit-testing - 无法导入 kotlin.test 以使用 assertFailsWith
问题描述
对于我的单元测试,我需要导入 kotlin.test 才能使用 assertFailsWith。
我相信我的 app build.grade 文件中有正确的文件。该文件的一部分是:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.vectordrawable:vectordrawable:1.0.1'
implementation 'androidx.navigation:navigation-fragment:2.0.0'
implementation 'androidx.navigation:navigation-ui:2.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.0.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
// ----
// Per https://developer.android.com/training/testing/unit-testing/local-unit-tests
//
// Required -- JUnit 4 framework
testImplementation 'junit:junit:4.12'
// Optional -- Robolectric environment
testImplementation 'androidx.test:core:1.0.0'
// Optional -- Mockito framework
testImplementation 'org.mockito:mockito-core:1.10.19'
// ----
testImplementation "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"
testImplementation "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
}
我不确定我错过了什么......
解决方案
对于 Android 项目和 JUnit 测试,您需要使用kotlin-test-junit
模块而不是kotlin-test-common
or kotlin-test-annotations-common
– 这些适用于多平台项目中平台之间共享的代码,并且在 JVM/Android 模块中被忽略。
用这个替换这两个依赖项:
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
推荐阅读
- python - 有什么方法可以从函数中引用模块/变量?
- authentication - 无法连接到 postgres:psql:错误:无法连接到服务器:致命:Windows 上用户的密码验证失败
- masstransit - MassTransit - Azure Functions / Service Bus - 消费不被用来消费消息
- c++ - 我正确使用 static_cast 吗?
- c - 如何在 PlantUML 活动图中用 C 中的“继续”语句表示循环
- image - 使用opencv仅删除图像中的黑点
- flutter - Navigator.push 中未定义的上下文
- python - 您如何设计没有重复的页面对象模型?
- swift - Swift NSPredicate init.block() 绑定示例
- jmeter - Jmeter测试数据库读取性能