【发布时间】:2021-10-28 16:59:30
【问题描述】:
我有一个控制器,它根据客户名称获取特定服务:
@RestController
class BasicController(){
@Autowired
private lateinit var services: List<BasicService<*>>
private var service: BasicService<*>? = null
@GetMapping("/{customer}")
fun getAll(@PathVariable customer: String): ResponseEntity<String>{
service = services.getServiceByCustomer(customer)
/... code w/return value .../
}
}
我有一个包含以下内容的文件 Extensions.kt:
fun <T: BasicService> List<T>.getServiceByCustomer(customer: String): T?{
return this.find{
it::class.simpleName?.contains(customer, ignoreCase = true) == true
}
}
当services.getServiceByCustomer 被称为类似于 `when`(mock.function(anyString())).thenReturn(value) 时,是否可以返回service 的模拟?
我已经尝试使用 mockK 与以下内容:
mockkStatic("path.to.ExtensionsKt")
every {listOf(service).getServiceByCustomer)} returns service
但我认为我没有正确使用它...我目前正在使用com.nhaarman.mockitokotlin2,但尝试过io.mockk
【问题讨论】: