我正在编写使用SQLDelight生成需要与MySQL数据库进行交互的类的Kotlin JVM应用程序。
如何为使用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
或mockito-kotlin
之类的库,应该模拟哪些类?
有什么更好的办法为我编写这些测试吗?谢谢。