Webサービスの自動テストをどう行うか?
RailsやNode.jsを利用したWebサービスの自動テストをどのように行うかの現状の調査分まとめ。
随時更新。
Webサービスのテスト対象
- [クライアントアプリ]
- サーバアプリ
- サーバサイド実装部分(RailsやNode.jsを使って実装)
- Model
- 最近だとtower.jsなどにように、クライアントのModelと共通の場合がある
- View
- 最近だとtower.jsなどのように、サーバではほとんどviewがない場合がある
- Controller
- Model
- クライアントアプリで動くJavaScript部分
- Model
- 比較的テストがしやすい
- View/Controller
- テストが結構手間。UIのテストは基本的に面倒。
- Model
- サーバサイド実装部分(RailsやNode.jsを使って実装)
- サーバのデプロイツール
- capystranoのスクリプト
- サーバのインフラ構築ツール
- chefレシピ
テストの粒度とテスト手法
- サーバ内、クライアント内で閉じるテスト
- サーバとクライアントが連携する結合テスト
- 機能テスト