问题标签 [mockk]
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.
unit-testing - MockK - 在顶级 val 上调用模拟/间谍顶级扩展方法
在下面的 MWE 中,我试图验证调用是否baz()
也会调用另一个对象的方法。但是,我似乎无法模拟/监视该对象。
MWE:
这失败了,因为调用theVal.bar()
获取val
初始化值而不是模拟值spy
。
如何在不更改顶级属性定义的情况下强制使用间谍?换句话说:我需要一个顶级的“常量”,但我也想模拟它。我可以使用val theVal get() = Foo()
,它解决了这个问题,但它显着改变了代码,因为它Foo
每次都会替换实例。
使用的版本: - Kotlin 1.3.10 - MockK 1.8.13.kotlin13 - JUnit 5.3.1
错误:
android - 如何根据模拟中传递的参数从同一函数返回两个不同的模拟?
我正在测试一种方法。它两次请求模拟对象的相同功能,但传递的参数不同。自然,我需要两个不同的答案,但 mockk 给了我相同的答案。
如何使用 mockk 获得两个不同的结果?
unit-testing - Mockk 方法调用验证:我可以验证是否调用了两种可能的方法之一?
我想检查是否调用了HandlerThread
'squit
或quitSafely
方法(仅调用了一次,并且仅调用了这两个中的一个)。可以使用Mockk吗?
kotlin - 如何使用 mockk 调用 lambda 回调
我用 mockk 创建了一个模拟类。在这个模拟中,我现在调用一个将 lambda 作为参数的方法。
此 lambda 用作回调,以将回调的状态更改传递给方法的调用者。
如何配置模拟以调用传递的 lambda?
java - 如何对并发 rxjava 执行进行单元测试
我有两个Completable
同时在两个不同的线程上运行并访问共享资源。我想测试他们的行为,以便只有第一个运行某些代码,第二个以错误结束。
由于我Scheduler.trampoline()
在测试中使用,这两个Completable
s 不能同时运行,而是按顺序运行,我无法对该代码进行单元测试。
例子,
android - 匕首不注入活动
我目前正在阅读这篇文章,尝试使用 Kotlin 在 android 中模拟 dagger 依赖项,但遇到了一些麻烦。
我收到一条错误消息,提示 activityInjector 未初始化。
我究竟做错了什么?
测试应用组件
测试应用
测试喷油器
活动模块
仪表化单元测试
unit-testing - Cast exception when mocking kotlin lambda callbacks in Mockk
I am having some trouble mocking callback functions with Mockk.
I am trying to mock a task success listener that is called like this:
Where the java signature for the callback would look like this:
and the signature for addOnSuccessListener looks like this
My mock looks like this:
I have also tried:
Either way, I am receiving a cast exception like:
kotlin - 如何模拟调用 kotlin.system.exitProcess
我想测试一些使用 3rd 方代码调用的代码,kotlin.system.exitProcess()
在标准库中定义如下:
当exitProcess()
被调用时,JVM 停止并且无法进行进一步的测试。我没有设法exitProcess()
用 mockk 模拟调用。可能吗?
一些进一步的信息:
第 3 方库是 Clikt ( https://ajalt.github.io/clikt/ ),这是一个用于构建命令行界面的好库。Clikt 应用程序解析命令行,如果失败则退出。这可能是调用 System.exit 可以的罕见原因之一。当然还有更多可测试的解决方案,但无论如何,在使用 3rd 方库时,争论在库中可以更好地完成的事情已经过时了。
我真正想要测试的是,我的应用程序在使用--help或错误参数调用时会写入预期的使用消息。
我还尝试以System.exit()
这种方式模拟调用: mockkStatic("java.lang.System") every { System.exit(any()) }.throws(RuntimeException("blubb")) 导致另一个问题,也都是然后模拟对 System 的调用:
有趣的是,我设法用 jmockit 在 Java 中对此进行了测试,如下所示:
kotlin - mockk 验证 lambda 参数
我想验证通过 lamdba 传入的值。函数如下所示:
现在在我的测试中,我想验证为 idSupplier 传入的值。我做了一个模拟来返回 save(...) 的值,它在我自己的 save(..., () -> ...) 中调用,就像这样
现在验证我现在有这个
哪个有效,但我想知道已通过的确切值,即如果实体的 id 是 123,我想验证这一点。
先感谢您