1

我正在编写一个 Kotlin JVM 应用程序,它使用 SQLDelight 生成需要与 MySQL 数据库交互的类。

如何为使用 SQLDelight 库生成的类的类/服务编写单元测试?

例如,SQLDelight 生成的接口如下:

interface SomeDB : Transacter {
  val someTableQueries: SomeTableQueries

  companion object {
    val Schema: SqlDriver.Schema
      get() = SomeDB::class.schema
    operator fun invoke(driver: SqlDriver): SomeDB = SomeDB::class.newInstance(driver)
  }
}
interface SomeTableQueries : Transacter {
  fun <T : Any> querySomething(name: String, mapper: (
    id: Long,
    name: String,
    address: String
  ) -> T): Query<T>

  fun querySomething(name: String): Query<SomeTable>
}

在我的应用程序的某个地方,我有myService.findAllAddressForName(name: String),它会做类似的事情someDB.someTableQueries.querySomething(name)

那么单元测试的最佳方法是什么myService.findAllAddressForName

如果我需要使用Mockitoor之类的库mockito-kotlin,我应该模拟哪些类?我有没有更好的方法来为这些编写测试?谢谢。

4

0 回答 0