我有一个从存储库中检索项目列表的函数。我没有使用常规回调,而是传入一个函数并使用结果调用它。但是如何对这种功能进行单元测试呢?是否有某种方法可以验证传入的函数是否正在被调用,或者我应该重构并使用常规回调并使用模拟回调接口对其进行测试?
My code:
class WorklistInteractor @Inject
constructor(private val worklistRepository: WorklistRepository,
private val preferenceManager: PreferenceManager,
private val executor: Executor)
: WorklistDialogContract.Interactor, Executor by executor {
@Volatile private var job: Job? = null
override fun getWorklist(callback: (Result<List<WorklistItem>>) -> Unit) {
job = onWorkerThread {
val result = worklistRepository.getWorklist().awaitResult()
onMainThread { callback(result) }
}
}
override fun cancel() {
job?.cancel()
}
}
要检查它是否被调用,类似的东西会起作用:
var hasBeenCalled = false
interactor.getWorklist({ result -> hasBeenCalled = true })
assertTrue(hasBeenCalled)
当然你也可以检查预期的结果是否通过等等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)