问题标签 [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 投票
3 回答
1016 浏览

kotlin - kotlintest 项目有一个示例结构

我目前正在使用 Kotlin 测试框架https://github.com/kotlintest/kotlintest

我想知道是否有一种预期的方式来构建项目,我的意思是,就像我可以开始的基础项目一样。

0 投票
0 回答
290 浏览

android - kotlin 中的测试

我是kotlin开发新手。在我的应用程序中,我想编写测试用例,但我无法使用它。src/test/kotlin 文件夹没有被创建

毕业典礼

如果我运行 androidTest,我会得到"No class found error" 另外哪个是好的 kotlintest 或 spek?

0 投票
1 回答
3083 浏览

ktor - Ktor:使用 JUnit 测试类的 Spek/KotlinTest 测试 REST 端点

我有一个简单的 hello world Ktor 应用程序:

使用 JUnit 测试类,我可以为它编写测试,如其文档中所述;如下:

但是,我想在 Spek 或 KotlinTest 中进行单元测试,无需 JUnit 的帮助,类似于我在 ScalaTest/Play 中进行的方式;以更具声明性的方式:

  1. 在测试期间向路由(即/)发送 FakeRequest。
  2. 获取页面内容,并检查字符串“hello”。

问题是我可以在 KotlinTest 或 Spek 中以更具声明性的方式编写上述测试吗?

0 投票
2 回答
1153 浏览

android - 如何验证特定的 lambda 方法是否已作为参数传递给 mockito

我有一个 Kotlin 类(问题被简化为有一个基本示例),其中有一个testedMethod()我想测试交互的方法。

我想确保传递给正确的参数anotherMethod(),我的问题是参数不是一个,而是一个lambda 函数

我正在寻找 Kotlin 中的一个简单解决方案,它可能基于也可能不基于java 的这个解决方案

0 投票
1 回答
2619 浏览

unit-testing - 如何使用 KotlinTest 库在测试方法中验证模拟接口?

我有一个与我的演示者通信的界面,演示者检查表单的字段是否有效。

我的界面是:

我在presenter中的方法是这样的:

我的 KotlinTest 测试类:

使用 KotlinTest 库,如果生成的电子邮件和密码始终正确,是否有任何方法可以验证对 MainView 类的 showMessage 方法的调用是否已完成?是否可以使用像 mockito 这样的模拟库?


根据用户@mkobit 的响应,可以使用 Mockito-Kotlin 进行以下修改,测试如下:

每次执行循环时,都会检查是否调用了 verify() 函数。如果执行流程是预期的流程,它将继续执行循环的下一个流程。如果verify()函数失败,控制台会出现错误提示测试失败。

有没有更好的解决方案?

0 投票
3 回答
4739 浏览

gradle - 如何使用 Gradle Kotlin DSL 运行 kotlintest 测试?

我想要什么?

我想使用kotlintest运行我的测试,我通过单击测试类旁边的图标成功地从 IntelliJ 运行它们。我的项目中也有JUnit 5测试。我现在开始使用Gradle Kotlin DSL,并且我设法运行了check执行 JUnit 5 任务的 Gradle 任务。

问题是什么?

kotlintest 测试没有运行!Gradle 似乎没有发现它,因为失败的测试让 Gradle 任务成功。所以,

如何在使用 JUnit 5 的同时使用 Gradle Kotlin DSL 运行 kotlintest 测试?

我尝试了什么?

如何使用 gradle 运行 kotlintest 测试?本质上是问题的旧版本,但由于使用不同的技术已经过时:JUnit 4 和 Gradle 而不是 Gradle Kotlin DSL。我能找到的所有其他问题都是针对 JUnit 4 或没有 kotlintest 的 JUnit 5

项目设置

我正在使用 Gradle 4.6。我的测试是

build.gradle.kts的是

PS 在GitHub 上完成项目。

0 投票
1 回答
1282 浏览

maven - 在 maven 中运行 kotlintest

我一直在努力让 kotlintest 测试从 maven 正常运行。我远非 Maven 专家,所以我希望有人能告诉我哪里出错了。

我从这里的 kotlin repo 中的 maven 示例开始,效果很好。添加更多测试时会出现问题。当我添加更多测试(在嵌套包中)时,实际上只有一个测试“运行”,其他测试似乎只是运行了一个虚拟测试方法。例如,给定以下层次结构:

项目结构

使用这个pom.xml,运行mvn test给出:

第一个:Running BarTest实际上是正确的测试(并且故意失败)。所有其他的(Running test.BarTest, Running a.AThingTest, Running newtest.FooTest)实际上并没有运行我的测试(我在那里也有故意的失败),并且似乎只是一些虚拟测试(也许来自 dummy@Test中的IntelliTestMarker?)。我在下面包含了其中一个测试文件的样本。

我需要做什么来运行我所有的实际测试?而且,最好不要在输出中显示“虚拟”测试?

BarTest.kt:

0 投票
1 回答
149 浏览

spring-boot - Intellij - thymeleaf 在 kotlintest 上吓坏了

我正在使用 springMVC 和 thymeleaf 使用 Intellij 在 kotlin 中开发一个 spring-boot 应用程序。很简单,在我尝试运行一些测试之前一切正常。测试甚至不相关。事实上,仅仅实例化一个测试似乎就足以让 thymeleaf 发疯。它抛出了数千行异常。

我已经创建了一个带有最小项目设置的 git 存储库,可以在此处重现该问题:https ://github.com/TheNewBob/kotlin-test-thymeleaf

这是我的两个版本的“测试”:

普通的 JUnit:

工作正常,Intellij 中的控制台输出:

但是当我切换到 Kotlintest 时:

混乱随之而来:

一遍又一遍地抛出这个错误。我将终端缓冲区重新配置为 10'000 行,但输出仍然不合适。

不过我注意到的是 gradlew 测试运行没有问题,所以 Intellij IDEA 似乎也在其中发挥了作用。

这基本上就是我的难题:spring-boot、thymeleaf、kotlintest 和 IDEA 都参与其中。删除其中任何一个,都没有问题。我不知道哪个是罪魁祸首,否则我可能只是在适当的地方提交问题报告。

以前有没有人遇到过这个问题,或者有预感问题可能出在哪里?

0 投票
1 回答
227 浏览

spring-boot - @WithMockUser 和 kotlin 测试

我是 Kotlintest 语法的忠实粉丝,我想知道它是否可以与 WebMvcTest 一起使用。更具体地说,我没有设法用 @WithMockUser 注释测试方法。

有人知道这是否可行吗?

预先感谢。

0 投票
3 回答
532 浏览

junit - 测试所有实现标记接口的枚举

我有空界面interface HavingUniqueValues(val v: Int) {}和一些枚举,例如enum class EnumName(override val v: Int) : HavingUniqueValues.

我希望每个枚举中的元素都有唯一v的值,但我可能会错误地输入这些值。所以我需要一个测试。

  1. 是否可以创建一个测试,其中接口实现List手动保存并测试是否所有实现都List满足要求?
  2. 如果是:是否可以创建一个返回List指定包中所有实现的函数以在测试中使用它?