Avatar
Avatar
yuki.noseda
自分の理解があってるかわからないので的外れな質問だったら申し訳ないんですが、storesのsendの中で非同期な関数を叩くときの中間状態のテストってどうやってますか? 例えば2つasyncな関数を叩くときに、片方だけ失敗したパターンとか、先に片方が成功したパターンとかでstoreの状態がどうなっているべき、みたいなテストをどう書くのかが気になります
非常に鋭い良い質問ですね。 TCAではよくあることなのですが、asyncな関数を叩くときはそのレスポンスをResult型で返却するようにしておき、ある関数を叩いてレスポンスを受け取った時用のAction caseを追加して、sendの中でさらにsendを叩くようにします。そうするとResult型のsuccessとfailureそれぞれパターンでテストケースが書けます ここで問題なのはLUCAにはsendの中で別Actionをsendされた時にそれをトラッキングする仕組みがありません。 (TCAならstore.receive(Action)で追加のActionまで追ってテストができます。) そこをどうするかが現状のLUCAの最大の課題です。つまり質問への回答としては、残念ながらテストの仕方が確立してません。
👍 1