Consider such code:
data class Task(val name: String, val description: String)
class CreateTeskUseCase(val repository: Repository) {
fun execute(taskRequestModel: TaskRequestModel) {
val task = Task(taskRequestModel.name, taskRequestModel.description)
//...
repository.save(task)
}
}
This works fine, but when I want to test interaction with the repo the "dummy" factory is required to get testable
Task
instance:
class CreateTeskUseCase(val repository: Repository, val taskFactory: TaskFactory) {
fun execute(taskRequestModel: TaskRequestModel) {
val task = taskFactory.create(taskRequestModel.name, taskRequestModel.description)
//...
repository.save(task)
}
}
class TaskFactory {
fun create(name: String, description: String) = Task(name, description)
}
I wonder if there is a way to generate this
TaskFactory
class (perhaps using
ksp
). Something like this
@GenerateFactory
annotation?
@GenerateFactory
data class Task(val name: String, val description: String)