私はAndroid上でユニットテストを始めていますが、このクラスのbindTo()
機能をテストしようとしたときにいくつかの問題が発生しました。私は私のViewKontrollerテストを模擬した場合関数内で設定されている匿名リスナーを使用してクラスをテストするにはどうすればよいですか?
class DataFlow<T> (produce: DataFlowProducer<T>): BaseDataFlow<T>(produce) {
var updateOnAttach: Boolean = true
fun bindTo(viewKontroller: ViewKontroller, updateImmediately: Boolean, updateUi: (data: T) -> Unit) {
this.updateUi = updateUi
if (updateImmediately)
flow()
viewKontroller.addLifecycleListener(object : Controller.LifecycleListener() {
override fun postAttach(controller: Controller, view: View) {
if (updateOnAttach) flow()
}
override fun preDestroyView(controller: Controller, view: View) {
viewKontroller.removeLifecycleListener(this)
[email protected] = null
}
})
}
}
はまだラインviewKontroller.addLifecycleListener
上のNPEでクラッシュ。
どうしたのですか?
おそらくテストコードが助けになる – Moira
申し訳ありませんが、今すぐコードをお持ちではありません。しかし、テストのメインラインは基本的に 'val dataflow = DataFlow {" test "} dataflow.bindTo(mock()、true、{result = it})' –