如何用间谍模拟构造函数?

问题描述

我目前正在尝试测试我的“暴露Kotlin”代码我有一张下面的表格

object Foo: Table() {
   *parameters*
}

和类似

方法
fun addNewFoo(){
    Foo.insert { ... }
}

我正在测试addNewFoo,并且想验证插入是否发生,理想情况下使用类似

方法
verify { FooSpy.insert { ... } } 

如何将Foo表模拟为间谍,以便可以验证调用是否发生,或者应采用其他方法来验证此方法调用

解决方法

您可以先使用Foo模拟单身mockkObject()类,然后进行验证。这是代码:

mockkObject(Foo) // mock the object
addNewFoo() // call function that we're testing
verify { Foo.insert(any()) } // verify
,

正在讨论解决方法:https://github.com/JetBrains/Exposed/issues/317

似乎没有真正预期的测试方法,但是在测试数据库中创建小型测试表是最接近的。