🐉 2024/02/04(日)
作成日: 2024/02/04
0

単体テストの考え方

  • 関数型へのリファクタリングでは、ApplicationServiceのメソッドで可変核のものを作り出して、引数として関数的核へ値を渡す
  • その後戻り値を使って、外部依存に対しての操作をApplicationServiceで行う
  • 上記のようにやることで関数的核に対して外部依存を取り除くことができる
  • しかし、関数型の弱点は関数型的核に値を渡すときにすべての値を取得できていないといけない。例えば、関数型核の中で条件によって値をDBから取得することを実装する場合、パフォーマンスをトレードオフで悪くする代わりに責務の分離を優先するのであれば引数として同じようにApplicationServiceで可変核から渡すことができる。逆に、パフォーマンスを優先するのであれば関数的核からの戻り値からDBへの取得が必要かどうかの判定を行う必要があり、ApplicationServiceに責務を渡さなければいけない。(多分、ドメイン駆動ならドメインサービスに責務を渡す)
  • 絶対に関数的核にはDBへのクラスを引数で渡してはいけない

意見

■ 自分的には、後者で行う方がよいのではないかと思う。例えばドメイン駆動のやり方を参考にドメインサービスクラスを作成する
■今まで、モデルの値クラスに外部依存とのやり取りを行わせていたが、そこは明確に分ける必要があることを学んだ