4

SpecFlow を使用して、ASP.NET MVC Web アプリケーションの 1 つの仕様を書き始めました。Google で答えが見つからない 2 つの基本的な質問に出くわしました。

  1. 実際のブラウザ インスタンスを作成せずにブラウザの動作を模倣する方法はありますか。実際のブラウザー インスタンスを作成できる "WatiN" などのライブラリがあることは知っていますが、テストのパフォーマンスが大幅に低下する可能性があるため、使用することに消極的です (ビルド サーバーで実行する必要があります)。

  2. ブラウザーまたはモック ブラウザーに依存する必要がある理由は、コントローラーを直接インスタンス化するときにすべてのアクション フィルターが起動されることを保証しないため、テストをコントローラーに向けたくないからです (それはasp.net mvc エンジンの一部)。誰かが私のコントローラをテストするシナリオへのアプローチを提案できますか - すべてのアクションフィルタを起動して (ブラウザ/モックブラウザを使用したくないかもしれません)?

ありがとう

バンブルビー

4

2 に答える 2

6

HTTP パイプラインをテストする場合は、WatiN のようなものが必要になるか、手動で HTTP リクエストを実行する必要があります。つまり、テストごとに手動でリクエストをキャッチし、テストで、WebClientまたはHttpWebRequestテスト内で同じリクエストを作成する必要があります。実際のエンドツーエンドのテストを行うため、WatiN を使用します。

また、ビルド サーバーで実行するテストが高速でなければならないということもありません。いくつかのテスト セットがあり、そのうちのいくつかは数時間実行されます。

于 2011-07-04T10:39:49.153 に答える
1

.net 用の Capybara (Ruby ツール) クローンである Mara プロジェクト (https://github.com/remi/Mara) を確認します。

Mara を使用すると、テストの作成が容易になるだけでなく、テストの実行方法を選択することもできます。Selenium、WatIn、またはヘッドレスを使用し、上記の WebClient を使用することもできます。ほとんどの場合、それは単なる構成です。

于 2011-07-05T08:05:35.337 に答える