0

まず、これで間違ったツリーを吠えている可能性があるので、間違っている場合は修正してください。

つまり、WatIn を使用する sme UI 単体テストを作成しようとしています。現在、UI のサブセットのみに取り組んでいます。

Product という名前のコントローラーとそれに関連付けられたビューがあります。コントローラーは、コンストラクターを介して ProductRepository を受け取ります。

私がうそをつくのは、さまざまな製品カテゴリがさまざまなテストで正しくレンダリングされることをテストすることです。そのため、ある種のスタブ化またはモック化されたリポジトリをコードに渡す必要があります。

私のテストは次のように設定されています。

using (var ie = new IE("http://localhost:2904/Product"))
{
     ...
}

では、適切な製品を提供するリポジトリをコントローラに渡すにはどうすればよいでしょうか? using ステートメントを呼び出すと、システムがブラウザーを起動したため、手遅れです。しかし、ブラウザが起動するまでコントローラは存在しないため、適切なリポジトリに挿入できません。

または、私は根本的にこれを間違っており、データベースに対してのみWatiNを使用できます。データベースから各タイプの製品のメンバーを選択するようにプログラムする必要があり、そのようにテストする必要がありますか?

4

1 に答える 1

0

あなたが示唆しているように、あなたは問題の間違った終わりを選んだと思います。私の理解が正しければ、UI テストと Watin は必要なく、統合テストが必要です。コントローラーのインスタンスを作成し、必要に応じてリポジトリを挿入し、他の依存関係をモックすることをお勧めします。リポジトリなどを切り替えることができます。

UI テストでは、アプリケーション全体を UI のトップからデータベースまでテストするため、動作を変更したり、一部の部分をモックしたりすることは困難です。UI で機能をテストする必要は本当にありますか? コントローラーでのみテストする方が良いでしょうか、それともあなたのケースではオプションではありませんか?

大丈夫そうですか、それとも私はあなたを完全に誤解していますか?

于 2014-08-27T16:04:41.997 に答える