问题标签 [kotest]
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.
micronaut - 如何在用 Micronaut Kotest 编写的测试中模拟 bean
我正在尝试添加测试来测试控制器,但模拟依赖项。
这不起作用,由于PostRepsoitory
无法识别嘲笑。
运行测试时更改为以下内容。
并得到了这样的例外。
DataInitializer
用于监听和StartupEvent
插入样本数据。如何在运行测试之前确保应用程序成功启动。
完整的代码在这里。
还有另一个用 Junit5 和 Mockito 编写的模拟示例,效果很好。
android - 如何使用 Kotest 和 Mockk 库为返回 LiveData 的方法编写单元测试
我正在使用 MVVM 来构建我的 android 应用程序,我的存储库有一个从房间数据库查询数据并返回 LiveData 的方法,我的方法的签名是:
我想用下面的代码为这个方法写一个单元测试:
但是测试失败并显示以下失败消息。
io.kotest.assertions.AssertionFailedError: 预期:androidx.lifecycle.MutableLiveData@1afc7182 但是是:<kotlin.Unit>
谁能帮我指出我错在哪里以及如何使用kotest库和Mockk库编写单元测试用例。
kotlin - 断言每个对象属性都匹配 kotlin 测试中的给定谓词
我有一个对象集合:
我想测试每个项目是否匹配给定的字段谓词。
是否有任何断言kotlintest assertions
可以让我这样做?
就像是:
unit-testing - 是否有 Kotest 断言来测试列表是否包含具有给定属性的某些元素?
我有两个具有一些共同特征的对象,我想比较它们
我想断言 aList<Car>
中的某些元素包含与给定的颜色和所有者相同的元素Pet
。
这是一个假代码示例来说明我正在尝试做的事情:
我如何使用 kotest 做到这一点?我可以使用 assertJ 的 anySatisfy 断言来完成所需的功能。
kotlin - 使用 runBlockingTest{} 测试 Kotlin 协程失败
我创建了一个简单的 Micronaut Kotlin Coroutines 示例,希望使用kotlin-corotines-test
. 我已经添加了kotlin-corotines-test
依赖项。
我尝试使用runBlockingTest
,但以下测试(Kotest/FuncSpec)失败。
并抛出这样的异常。
但如果runBlocking
在有趣的身体中使用,它会起作用。
更新:从问题Kotlin/kotlinx.coroutines#1204获取解决方案,将 kotlin 协程更新到 1.6.0-RC 以解决它,并使用runTest
而不是弃用的runBlockingTest
.
kotest - 构建 CustomGenerator 时可以使用 .next() 吗?
假设,我已经有一个 CustomGenerator:
在基于第一个构建 CustomGenerator 时可以使用 .next() 吗?(我知道,那样的话,我会得到一个不同的种子。但是我需要关心它吗?在什么情况下我应该关心它?)
官方文档:https ://kotest.io/docs/proptest/custom-generators.html
kotlin - IntelliJ Kotest 不显示测试失败并出现异常
代码
我有以下三个测试:
问题
中间测试抛出了一个意外的异常。我希望看到 3 个测试运行,其中 1 个失败,但 IntelliJ 和 Kotest 插件向我展示的是 2 个测试中有 2 个通过了。我可以在“测试结果”侧面板中看到有些地方不对劲,但它没有任何有用的信息。
如果我导航到index.html
测试结果,我可以正确看到所有内容。我想在 IntelliJ 中看到相同的数据。
截图
- 在左侧,缺少数字 1 的测试
- 在顶部它说“测试通过:2 of 2”
- 左边有黄色的叉到“Given”,但“Given”中的所有测试都是绿色的
其他信息
- Kotest 版本:4.6.3
- IntelliJ Kotest 插件版本:1.1.49-IC-2021.2.3
unit-testing - kotest 等效于 assertJ 中的 usingElementComparatorIgnoringFields
assertJ 允许您检查元素列表是否相等,同时忽略用户指定的字段,如下所示
我无法在 kotest 中找到任何等效功能。有没有等价物?
kotlin - 在 kotest 中,有没有办法为它所在的 TestContainer 运行一次“之前”挂钩?
我正在尝试使用 Kotest 编写嵌套测试,这些测试具有每个嵌套级别仅运行一次的钩子。这就是 mocha 在 JavaScript 中的工作方式以及 RSpec 在 ruby 中的工作方式。在 mocha 中,该函数被调用before
。我尝试使用beforeContainer
,但它为每个嵌套容器运行一次,而不是为整个容器运行一次,包括该父容器中的任何嵌套容器。这很难解释,所以下面是一组我希望通过的测试,如果before
kotest 中存在行为类似于 mocha 或 RSpec 的方法。简而言之,每个before
方法应该只被调用一次,并且只有在其容器中的测试运行时(例如,before
内部的方法在"nested level 2"
测试运行之前不应该"nested level 1"
运行)。
before
如果我制作第一个abeforeSpec
和另外两个beforeContainer
(并将它们移动到每个嵌套容器上方),我可以接近我想要的,但随后counterTwo
会增加两次:一次 for"nested level 1"
和一次 for "nested level 2"
。我不确定我是否只是做错了什么,或者这个功能在 kotest 中根本不存在。
kotest - 什么取代了现在移除的 Kotest 箭头匹配器 shouldBeSome 函数变体?
在之前的 kotest-assertions-arrow 版本中,可以这样写:
我刚刚升级到 v1.2.1,这个变种已经被删除了。仅保留文字值变体
什么取代了旧风格?