问题标签 [kotlintest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3047 浏览

unit-testing - 如何使用 kotest/kotlintest 在上下文中运行单个测试

我有以下测试套件:

我尝试在 IntelliJ Idea 中执行它。不幸的是,它在套件中执行这两个测试。如果我不将测试嵌套在context().

0 投票
1 回答
1250 浏览

android - Kotest(以前的 KotlinTest)是否仍然在 Android Studio 中工作?

据我所知,Kotest 需要 JUnit 5:

https://github.com/kotest/kotest/issues/1104

它还需要 Gradle 6:

https://github.com/kotest/kotest/issues/1301

我认为这一切都可以设置并正常工作,但 JUnit 5 和 Gradle 6 不是真的不支持 Android 开发吗?我担心,即使我现在一切正常,我也可能会遇到问题。

0 投票
1 回答
2210 浏览

unit-testing - 使用 Mockk 进行单元测试,java.lang.ClassCastException:PhoneValidationKt$isPhoneValid$1 无法转换为 kotlin.jvm.functions.Function1

在单元测试我的 Kotlin 功能时需要一些帮助,如下所示,因为我是单元测试的新手,我尝试过但失败了,

我的 Kotlin 顶级函数如下,

我对上述方法的单元测试代码如下,

以下是我在单元测试代码时遇到的错误,如下所示,

以下是我提到的链接尝试这些单元测试,如下所示,

链接 1 链接 2 链接 3 链接 4

0 投票
0 回答
631 浏览

gradle - 如何在 LibGdx 项目中使用 Gradle 配置 KoTest?当前无法构建,因为无法识别 StringSpec

我有一个由 LibGdx 工具设置的标准 LibGdx 项目,仅针对桌面。它使用 Gradle (Groovy DSL) 来管理依赖项和任务。我已将核心模块转换为 Kotlin,并尝试使用 Kotest 添加 Kotlin 测试模块。

我在他们的 GitHub 上遵循了 Gradle 的 Kotest 说明,但编译失败,因为StringSpec没有重新识别(Unresolved reference: StringSpec)。我认为 LibGdx 的默认 Gradle 设置可能有点过时或使用较旧的语法/结构,并且可能与 Kotest 针对较新版本的 Gradle 的说明相冲突?

现在我已经删除了任何测试,只是试图让它识别StringSpec和编译。我什至还没有达到让 IntelliJ 识别和运行测试的阶段。这是我到目前为止所拥有的:

core.tests/tests/com/me/game/AcceptanceTests.kt

core.tests/gradle.build

./build.gradle(即根构建文件)

设置.gradle

Gradle-wrapper.properties

我没有太多的JVM经验,所以我有点茫然。希望我错过了一些对更了解 Gradle 的人来说显而易见的东西。有任何想法吗?

0 投票
0 回答
429 浏览

kotlin - 使用公开框架为 Kotlin 测试用例创建全局数据库架构

我是Kotlin 公开框架的新手。我正在寻找的是在H2数据库中拥有一个全局数据库模式 - jdbc:h2:mem:test 用于我的测试用例。

在我的应用程序中,我使用的是 mysql。我只想将 H2 用于测试。

下面是我的代码片段供参考。

在这里,每次我必须为每个测试用例编写 - createTable。有没有一种方法可以让我在全局范围内定义这个模式,并且可以为每个测试用例摆脱这部分。

0 投票
2 回答
997 浏览

kotlin - describe 子句中的 kotest 嵌套规范

我已经开始使用 kotest:4.0.5 (kotlintest) 并且遇到了stringSpec嵌套在 describe子句中的函数问题。

例子:

If include(emailValidation())is outsidedescribe子句然后正确工作。

您知道如何在子句中嵌套规范/功能吗?

0 投票
1 回答
1485 浏览

kotlin - Kotest 设置问题,“未解决的参考”

我正在尝试将 kotest 添加到我的库中,但我只是得到:

我一定是在 build.gradle.kts 的某个地方搞砸了,有些东西没有加载或 useJUnitPlatform() 没有运行,但我不确定在哪里。谁能发现我哪里出错了?

src/test/kotlin/io/bmb/ttnt/lib/SqliteManagerTest.kt

build.gradle.kts:

更新:

如果我使用:

虽然 io.kotest 是我在 build.gradle.kts 文件中使用的?

0 投票
1 回答
603 浏览

kotlin - 有没有更简单的方法来使用 Kotest 基于属性的测试来测试所有排列?

我正在使用 kotlin + Kotest 属性测试,并尝试使用如下列表生成器测试 2 个参数的所有排列:

我希望使用穷举生成器能够以这样的方式生成它们,即通过 4 次迭代,所有可能的排列都将被覆盖。像这样:

相反,穷举生成器总是按照列出的顺序排列,如下所示:

这意味着我要多次测试同一个案例。

我已经尝试将一些生成器切换到 Arbs,这确实会改变顺序,但不是最佳的。为了增加击中所有案例的可能性,我必须比使用正确的顺序进行更多的测试。

我也考虑过像这样多次列出相同的元素

但这似乎不可持续,尤其是当我以后想添加更多参数或值时。

有没有办法生成详尽的排列,而不仅仅是继续遍历每个列表?

0 投票
0 回答
227 浏览

wiremock - 使用证书的 Wiremock 在 Windows 上不起作用

此错误仅发生在 Windows 操作系统上。在 Linux 和 MacOS 上运行良好。

我已确保证书的密码正确,它们确实存在于上述位置并且端口可用。语言是 Kotlin。测试框架是 Kotest。

证书位于:test/resources/ssl-certs/client-cert.p12 test/resources/ssl-certs/server-cert.p12

我得到的错误(仅在 Windows 上):

0 投票
1 回答
564 浏览

kotlin - kotlin kotest/kotlintest BehaviorSpec afterSpec/finalizeSpec 调用太频繁或根本不调用

我有一个 kotlin kotest(以前称为 kotlintest)BehaviorSpec

在它下面有一个Given("...")和很多When("...") Then("...")

我想在整个规范(分别是每个Given子句)完成后执行清理。

在使用时,afterSpec { }我对子句进行了多次调用Whens??),afterSpec { }而不仅仅是在规范完成(或完成/每个Given子句)之后调用

在使用finalizeSpec { }它时根本不会被调用(它里面的断点永远不会被命中)

我究竟做错了什么?

还是我错过了BehaviorSpecs 的一些奇特特征?