Web フォーム アプリケーションをテストする最良の方法は何ですか?
人々は、Watin と Selenium を愛しているようです。
Web フォーム アプリケーションをテストする最良の方法は何ですか?
人々は、Watin と Selenium を愛しているようです。
なぜ WatiN を単体テスト ツールと呼ぶのでしょうか。前回チェックしたとき、統合テストが実行されました。
最良の方法は、HttpContext に依存しないすべてのコードを別のアセンブリに移動し、通常どおり単体テストを実行することです。残りはIvonnaでテストできます。彼女はクライアントの動作をテストしません。そこでは、WatiN が役に立ちます。ただし、ページまたはコントロールを単独でテストする場合は、彼女が唯一の選択肢です。
更新: WatiN が 1 年以上停滞していることを考えると、web ui テストが必要な人にはseleniumを使用するように指示します。これは、多くの貢献者によって継続的に使用および開発されており、Google によって積極的に使用されています。
WatiNは私が見つけた中で最高です。これは、Visual Studio のユニット テストまたは nunit に統合され、ブラウザーで必要なことはほとんどすべて実行できます (リンクのクリック、フォームの送信、テキスト/画像の検索など)。
同様の回答については、次の質問を参照してください。
これが 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 の別の投稿のおかげで見つけました)
私は WATIR (Web Application Testing in Ruby) - http://wtr.rubyforge.org/を使います。私たち (Acsys Interactive) は約 1 年間使用しており、このツールは優れています。
単体テストから WATIR スクリプトを実行できるように、.NET で単純なラッパーを開発しました。このフレームワークは素晴らしく、Ruby のすべての力があなたの背後にあります。Firefox と Safari (FireWatir プロジェクト) のサポートがあります。
これは WATIN と非常によく似ています (実際、WATIN は WATIR に触発されたと思います) が、WATIR コミュニティは WATIN コミュニティよりもはるかに大きいことがわかりました。
使用できるテスト レコーダーとたくさんのチュートリアルがあります。
それは本当にあなたの選択です。テストを .NET で行う必要があり、他の言語をサポートしたくない場合は、WATIN を選択してください。一方、楽しくて非常に強力なスクリプト言語 (それが Ruby です) を試してみたい場合は、WATIR を選んでください。
WATIN 関係者への質問ですが、FireFox/Safari をサポートしていますか?
これは、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