2009-05-20 18 views
1

新しいMVCプロジェクトを開始しています。良い少年のように、できるだけDBに行くのを延期しようとしています。ここにスクープがあります:LinqToSqlとメタデータAnnotationsの統合方法

  1. 私はComponentModel.DataAnnotationsデコレーションを使用する予定です。
  2. 私も使用して計画していLinqToSql

DataAnnotationsメタデータクラスに対するユニットテストを書くことが可能ですされていますか?できるだけ遅くまでスキーマを作成したくないのですが、モデルを検証するためのテストを書いてみたいと思います。

良いアプローチに関するアイデアはありますか?多分何か全く違う?

+0

私は質問を理解しているか分からない。あなたはパブリックプロパティ(例えばFullNameという文字列が必要で、最大長さが100など)にDataAnnotationsを持つPOCOクラスを作成したいと思いますか?もしそうなら..この公共財産をユニットテストしたいあなたはユニットテストをしたいと思っています(それはフレームワークの一部であると考えているので、曖昧な話です。) –

+0

最初のオプションは私が欲しいものですが、私が欲しいものですLinqToSqlクラスのすべてのプロパティを手作業でPOCOオブジェクトにマッピングするのではなく、L2SクラスのMetaDataクラスを作成してAnnotationsを適用していましたが、決して解雇されませんでした。 – KevDog

答えて

1

Brad Wilsonは、DataAnnotationsの使用方法と単体テストに関する素晴らしいブログ記事を投稿しました。

  1. デフォルトのバインダーとしてDataAnnotationsModelBinderを使用していることを確認するために検査するためのテストを書く:テスト戦略のhttp://bradwilson.typepad.com/blog/2009/04/index.html

    要旨はこれです。

  2. リフレクションを使用して、モデルプロパティを装飾したDataAnnotation属性が期待どおりであることを確認します。
  3. コントローラの編集または作成アクションをテストするときは、ModelErrorsを人為的に挿入して、期待通りに処理しているかどうかをテストします。

根拠は、インフラストラクチャの一部のようなSystem.ComponentModel.DataAnnotationsを治療し、ちょうどあなたがそれを利用しているかテストすることです。

関連する問題