Webフォームアプリケーションをテストするための最良の方法は何ですか?
人々はワティンとセレンを愛しているようです。
疑問に思っているのですが、なぜWatiNをunitテストツールと呼ぶのでしょうか。前回チェックしたときは、統合テストを実行しました。
最善の方法は、HttpContextに依存しないすべてのコードを別のアセンブリに移動し、通常どおり単体テストを実行することです。残りは Ivonna でテストできます。彼女はクライアントの動作をテストしていません。そこでWatiNが役立ちます。ただし、ページまたはコントロールを個別にテストする場合は、彼女が唯一の選択肢です。
これがWebformsの最大の欠点です。実際的な理由から、テストコントローラーなどの単体テストの観点からはテストできません。
これは、MVCフレームワークの主な利点の1つです。
私は、ビジネスロジックをUIコードから分離するアプローチを好む傾向があります。これは、単体テストに適したパターン(Model-View-Presenter)について説明している記事です。
http://www.unit-testing.net/CurrentArticle/How-To-Use-Model-View-Presenter-With-AspNet-WebForms.html
私はWaitInのようなツールを使用します:
「WatiNは.NETのWebアプリケーションテストです。このテストレコーダーは、埋め込まれたIEブラウザー」でクリックを記録することにより、ソースのチャンクを生成します( Scott Hanselmanのブログ)から -StackOverflowの別の投稿のおかげで見つけました
これがWatin、Watir、Seleniumのレビューです http://adamesterline.com/2007/04/23/watin-watir-and-Selenium-reviewed/
どうやらSeleniumはテスターにとって非常に遅い動作をしましたが、コメントの1つが指摘しているように、これは複数のブラウザーをサポートしているためにのみ当てはまることに気付くでしょう。
ただし、Internet ExplorerとFireFoxの両方の自動化をサポートするWatiNのCTP(Community Technology Preview)リリースがあります。
私はSeleniumを使用して素晴らしい経験をしました。 Webテストは非常に壊れやすい場合がありますが、ここに私のブログの記事があり、テストの脆弱性を減らす方法について説明しています。 http://www.unit-testing.net/CurrentArticle/How-To-Make-Web-Tests-Less-Fragile.html
私はWATIR(RubyでのWebアプリケーションテスト)を使用します http://wtr.rubyforge.org/ 。私たち(Acsys Interactive)は約1年間使用しており、ツールは素晴らしいです。
ユニットテストからWATIRスクリプトを実行できるように、.NETで単純なラッパーを開発しました。フレームワークは素晴らしく、Rubyパワーが背後にあります。FirefoxとSafari(FireWatirプロジェクト)がサポートされています。
これはWATINと非常によく似ていますが(実際、WATINはWATIRに触発されたと思います)、WATIRコミュニティはWATINコミュニティよりもはるかに大きいことがわかりました。
使用できるテストレコーダーとたくさんのチュートリアルがあります。
それは本当にあなたの選択です。テストを.NETで行う必要があり、他の言語をサポートしたくない場合は、WATINを選択してください。一方、楽しくて非常に強力なスクリプト言語(Ruby is))を試したい場合は、WATIRを選択してください。
WATINの皆さんへの質問ですが、FireFox/Safariをサポートしていますか?