2011-07-04 1 views
4

私は、SpecFlowを使用して、自分のASP.NET MVC Webアプリケーションの仕様を書き始めることにしました。私は2つの基本的な質問に出くわしましたが、私はグーグルで答えを見つけませんでした。BDD with Specflow and mockingブラウザの動作

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

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

おかげ

バンブルビー

答えて

6

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

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

1

私は、.netのCapybara(ルビーツール)クローンであるMaraプロジェクト(https://github.com/remi/Mara)をチェックします。

Maraはテストを書くのを簡単にするだけでなく、テストの実行方法を選択して選択することもできます。セレン、WatIn、またはヘッドレスで、上記のWebClientを使用することもできます。ほとんどの場合、設定だけです。