カマカマの雑草ブログ

個人の日記です

A poem of testing

テストコードってなんで必要か

  • 実装時におけるデグレエンバグを防ぐ手段の一つになる
  • コードの動作を明示的に保護できる
  • リファクタリングしやすくなる
  • 大まかなcouplingとIF設計のガイドになる

モバイルゲームクライアントという特殊な環境

通常のiOS/Android Appと比べると……

  • 仕様追加/変更が多い
  • DynamicなUIを求められる箇所が多い
  • 機能単位の直交性があまり高くない

とはいえ複雑化するクライアント事情

  • UIの整合性
  • ユーザの操作制御
  • 複雑なState管理
  • API通信
  • データ加工とView表示

テストを単純に書けば良いというものでもない

書くこと・保守することは間違いなくコストになる

テストを書けそうなら以下の辺りか

  • UI Componentの存在/属性検証
  • UserActionが適切にdispatchされているかの検証
  • ユーザ操作に対して変化するStateの検証
  • Infra層へのrequest/responseが適切かの検証
  • Infra層から得たデータを元にViewObjectを生成するロジックの検証

どこまでやるのか、という程度問題は結局残り続ける(UI要素全検証とかシンドいと思う

経験からクライアント書いててネックになりがちな所は以下だと思っている

  • UIの整合性
  • 複雑なState管理
  • Clientで持たざるを得なかったdomain logic

ソフトウェアをより良くするための保護と、サービスをより良くするための身軽さを両立する位のバランス感覚でやれると嬉しい