BT

Navigationは、ASP.NET WebFormsをよりテスト可能にする

| 作者: Roopesh Shenoy フォローする 0 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2012年6月19日. 推定読書時間: 2 分 |

原文(投稿日:2012/06/18)へのリンク

Navigationは、CRUDロジックをコードビハインドファイルから移動することによって、ASP.NET Webフォームをよりテスト可能にするライブラリである。Graham Mendick氏の記事“Navigationのユニットテスト”では、いくつかの機能の紹介と、どのようにユニットテストを書くことができるかを紹介している。

このライブラリでなにができるのか?

  • 分離クラスのコントローラメソッドとバインドするコントロール
  • ナビゲーションバインディング

aspxページのマークアップにすべて含められる。たとえば、FormViewとコントローラメソッドをバインディングする場合、このように記述する -

<asp:FormView ID="Question" runat="server" DataSourceID="QuestionDataSource" DefaultMode="Edit">
<EditItemTemplate>
</EditItemTemplate>
</asp:FormView>
<asp:ObjectDataSource ID="QuestionDataSource" runat="server" SelectMethod="GetQuestion" UpdateMethod="UpdateQuestion" TypeName="Survey.SurveyController" DataObjectTypeName="Survey.Question" />

GetQuestionとUpdateQuestionはコントローラメソッドで、SurveyControllerという外部クラスに実装されている–これらはコントロールに直接アクセスできず、Navigationライブラリにデータをパスする。Survey.Questionは、この例ではデータを転送するViewModelを参照する。

なぜこれがユニットテストをシンプルにするのか?なぜなら、ビジネスロジックはPOCOクラスに分離され、Web固有の振る舞いが含まれていない。そして、テストはより簡単になる。詳細はこの記事を見て欲しい。

すでにInfoQで報じたとおり、WebForms 4.5のモデルバインダーが使えるようになるが、このライブラリはコードビハインドファイルではなく分離クラスのコントローラメソッドに置かれ、よりテスト容易性と再利用性が高い。興味があるなら、 Navigation NerdDinner walkthroughをダウンロードすることができる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT