社長BLOG
スマートフォンレイアウトの単体テスト
- 2012-02-21 (火)
- 社長BLOG
◆テストガジェット配置イメージ
HOUOUで開発しているスマートフォンUIでは
LOGIN、HOME、MEMBER、COMMUNITY、SNSの5つの基本レイアウトがある。
これらのUIが正しく動作するか?ガジェットを格納できるか?ガジェットを格納したときにも、基本UI部分は正しく動作するか?
などの、テストを自動的に行いたい。
課題
スマートフォンUIでは、JavaScriptを多用しているため、ふたつの課題がある。
1.symfony limeを利用できない
2.テストプロセスの自動化ができない
limeはJavaScriptテストができるQUnitとAPI通信を偽装するモックをつくってくれるmockjaxを利用することでカバーできそうだ。
テストプロセスの自動化については、まだ良い解決策が見つかっていない。
Travis-ciでHEADLESSテストが実行出来るという記述があるので、これに期待している。
※PHP5.4ではWEBサーバモードがあるらしいので、この組み合わせでうまくいかないだろうか?
テストのやり方
要するに図のとおり。
テスト専用のガジェットを作り、その中にテストを記述する。
5つの基本レイアウトにそれぞれテストガジェットを一つづつ配置。
layoutHOME なら HOMETestGadgetとなる。
まずは他のガジェットを設置しない状態(ガジェットコンテナにテストガジェットしかない状態)で単独でテストを行う。
これに通過したら、基本レイアウト単体での動作は正しいとする。
レイアウトに他のガジェットが入った時も、そのガジェットとテストガジェットの両方を設置した上で組み合わせ検証を行う。
テスト用のfixtureには、テストガジェットを配置するように記述する。
レイアウト単体のUI動作試験が行いたいので、APIとの接続についてはmockjaxを利用してダミーのモック相手のテストとする。これが本番のAPIサーバ相手に通信すると、結合テストになってしまうからね。信頼性が上がらない。
これでレイアウト単体の動作確認は行うことができるはずだ。