仕事(がうまくいくためにどうすればいいかを妄想するの)が好き。
Seleniumを使って自動テストをするのはいいけれど、世の中うまい話には裏がある。
ネックとしては
・実行時間
・環境の構築
この2点。
どうしても実際の通信、およびブラウザ動作を行うSeleniumは実行するのに
時間がかかるし、DBやHTTPサーバーといった環境も含めて
運用を考えないといけないから手間もかかる。
この2点をクリアできるのが単体テストであり、有名どころとしては
javaでいうとJUnit。javascriptでいうとJsTestDriverだったりする。
理想的な住み分けとしては
・カバレッジやデグレ防止のためのテストケースを増やしたりしたりするには
出来る限り単体テストで。
・単体テストで無理な部分(業務的な処理フロー等)は画面テストで行い、
実行時間を短くする
のがいいのかなと現時点では思っている。
で、そこで今度問題になってくるのが単体テストにおける擬似操作データ、
および擬似通信になってくる。
画面テストにおいては、実際にブラウザも立ち上げ、データベースや
アプリケーションサーバーも存在するから、環境さえ用意してしまえば、
「どのように動かすか」を設定してあげればいいだけ。
だけど単体テストはそうも行かない。あくまで「単体」だから、いわゆるMock的な物が
必要になってくる。
具体的な物の一つに、JsTestDriverでいうところのDOMの操作を行うテストが
当てはまる。
0 件のコメント:
コメントを投稿