我正在编写一个 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
?
如果我需要使用Mockito
or之类的库mockito-kotlin
,我应该模拟哪些类?我有没有更好的方法来为这些编写测试?谢谢。