2009-07-17 24 views
3

モデルバインダーを対象とした単体テストがあります。私はModelBindingContextを作成し、ValueProviderDictionaryにテスト値を設定します。コントローラーがモデルを取得すると、すべてがテストでカバーされ、適切なことが起こっていると確信しています。 BindingContextが正しい場合、私のモデルは正しくバインドされると確信しています。私が自信を持って感じないことは、私のViewがポストバックされると、BindingContextが正しくポピュレートされるということです。ASP.NET MVC - モデルバインディングのテストページ

フォームを記入し、返信して結果のビューを確認するWatiNテストを作成し始めました。これは大丈夫ですが、間接的なようです。例えば、「あなたの注文は保存されました」というページは、送信をクリックした後に表示されます。データベースに正しく保存されているかどうかを確認する必要があります。私はすでにコントローラに渡されたモデルがxで、yがデータベースに保存されているときにそれをカバーするテストを行っています。ビューのテストでこのコードを繰り返すのはなぜですか?

私が実際に望むのは、ビューを作成してサブミットし、(a)BindingContextまたは(b)ModelBinderから返されたモデルのいずれかをチェックすることです。

このようにする方法はありますか?


WatiNテストに加えて追加するとします。私はWatiNテストを50個ほど追加しました。追加する数は増えましたが、WatiNなしで上記のことができるのであれば、ほんの一握りのテストを削除するだけです。私はWatiNを何が良いのか使い続けるつもりですが、私は今、いくつかのテストでそれを悪用しようとしています。

答えて

0

モデルバインディングは、ビューがフレームワークの規約に従わない場合にのみ失敗します。起こっている最初の兆候は、あなたの見解が期待される結果を示していないときです。次はWatiNテストが失敗したときです。

技術的には、これは間接的なテストですが、最も実用的なテストです。どのようにして、すべての意見が、彼らが働いていることを観察する以外に、慣習に従うことを確認しますか?

関連する問題