1

私はしばらくの間、.net 単体テストなどに取り組んできました。次に、 ascx および ascx.csページのテストを作成する必要があります (ただし、aspx および aspx.cs の参照も役立つ場合があります)。私はウェブテストにあまり詳しくありません。誰でも役立つヒントやリファレンス (チュートリアル、ベスト プラクティスに関するブログ投稿など) を提供できますか?

VS2008 ツールを使用したテストや、テキスト エディターを使用したテストのコーディングに関する参考資料として使用できます。

4

3 に答える 3

2

まず、一歩下がって、UI ページとコントロールをテストすることで、何を達成しようとしているのかを明確にしましょう。アプリケーション データをページ/コントロールでレンダリングできることを確認しようとしているだけですか?

私の経験では、うまく分離されたビジネス層とデータ層をテストするよりも、Web UI 層をテストする方が桁違いに多くの作業が必要です。堅実な MVC パターンに従ってアプリケーションを設計すると、すべてのデータ アクセスとビジネス ルールを含むコントローラー レイヤーとモデル レイヤーのテストを簡単に自動化できます。これは、MSTest、NUnit、または XUnit などを使用して行う必要があります。

Web プレゼンテーション レイヤー (つまり、Web .ASPX ページと .ASCX ユーザー コントロール) は、既にテスト済みのコントローラーを介して同じビジネス ロジックに接続する必要があります。

80/20 ルールを信じるなら、この場合、アプリケーションの 80% が 20% の労力でテストされることを意味します。個々のページとコントロールのテストを自動化するために余計な努力をすることは、ほとんどのプロジェクトにとってやり過ぎです。代わりに、Visual Studio でロード テストを作成し、ログイン、いくつかのページの読み込み、いくつかのページ コントロールの操作などの基本的なユース ケースを記録することをお勧めします。

この負荷テストを実行して、アプリケーションが開発およびテスト環境で正しく動作していることを確認します。本番環境では、すべてが正しく機能していることを実際のユーザーが確認する必要があります。

ASP.NET MVC2 フレームワークに関するドキュメントを表示するには、ここをクリックしてください

MVC パターンの一般的な説明を表示するには、ここをクリックしてください

于 2010-10-14T19:32:11.123 に答える
1

「ascx と ascx.cs」をテストするのではなく、ユーザーに表示される UI をテストし、サービス/リポジトリ/モジュールをテストすることをお勧めします (優れたモジュラー アーキテクチャを使用していて、分離コード ページにすべてのコードを記述していない場合)。UI をテストするには、Selenium RCを使用できます。使用例がたくさんあります:
http://www.lostechies.com/blogs/agilecruz/archive/2009/02/10/how-to-configure-selenium-rc-for-use-in-c- nunit-tests.aspx
http://thetestingblog.com/2009/09/10/selenium-rc-in-c-using-nunit-an-end-to-end-example/
http://www.stevetrefethen.com /blog/AutomatedtestingofASPNETwebapplicationsusingSelenium.aspx
http://codebetter.com/blogs/jeremy.miller/archive/2006/05/14/144666.aspx
また、そのための特別な .net ツールキットもあります。

于 2010-02-19T20:42:03.350 に答える
0

Fiddler2のコピーを取得します。実行すると、ASP.NET サーバーとのセッションが "記録" されます (要求と応答 - 新しい Web テストを "記録" するときに Visual Studio によっても行われます)。その後、要求を選択して、ビジュアル スタジオの Web テストとして保存できます。

残りは、ASP.NET が要求と応答を作成および使用してアプリケーションを制御する方法を理解することです。

Web テストをコード化された Web テストに変換し、Microsoft を検索して、Web テストが使用する各オブジェクトの詳細を確認してください。

于 2009-10-15T22:08:32.043 に答える