NavigationライブラリによりASP.NET Webフォームのテストが容易
1622 ワード
Navigationは、CRUD[1]の論理をバックコードファイルから分離することにより、ASP.NET Webフォームはテストしやすい.Graham Mendickの記事「Navigationによるユニットテスト」では、いくつかの関連機能と、ユニットテストの作成方法について説明しています.
このライブラリは何をしていますか.それはコントロールは、個別のクラスにあるコントローラメソッドにバインドされます. ナビバインディング aspxページにあるすべてのタグ.たとえば、FormViewコントロールをコントローラメソッドにバインドするタグは、次のようになります.
ここで、
ユニットテストを簡略化できるのはなぜですか?現在、ビジネスロジックは、Web固有の動作を持たないPOCO[2]クラスに単独で存在するためである.テストを容易にすることができます詳細については、この文書を参照してください.
InfoQで説明したように、WebForms 4.5はmodel binders(モデルコンパイラ)を取得して箱を開けて使用する(out-of-the-box)--しかし、このライブラリはコントローラメソッドを別のクラスに配置することを許可し、後置コードファイルの代わりにすることができ、これはテスト性と再利用性にとってより良いようだ.興味があれば、Navigation NerdDinnerトレーニングコードをダウンロードできます.
訳注
[1]CRUD、すなわちCreate、Read、Update、Deleteの頭文字の略語であり、データベース操作における作成、読み取り、更新、削除を指す.
[2]POCO、すなわちPlain Old CLR Objectの略で、従来の単純CLR(共通言語実行ライブラリ)オブジェクト、詳細はウィキペディアを参照してください.
原文:Navigation Makes ASP.NET WebForms More Testable
このライブラリは何をしていますか.それは
<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)を参照してデータを送信する.ユニットテストを簡略化できるのはなぜですか?現在、ビジネスロジックは、Web固有の動作を持たないPOCO[2]クラスに単独で存在するためである.テストを容易にすることができます詳細については、この文書を参照してください.
InfoQで説明したように、WebForms 4.5はmodel binders(モデルコンパイラ)を取得して箱を開けて使用する(out-of-the-box)--しかし、このライブラリはコントローラメソッドを別のクラスに配置することを許可し、後置コードファイルの代わりにすることができ、これはテスト性と再利用性にとってより良いようだ.興味があれば、Navigation NerdDinnerトレーニングコードをダウンロードできます.
訳注
[1]CRUD、すなわちCreate、Read、Update、Deleteの頭文字の略語であり、データベース操作における作成、読み取り、更新、削除を指す.
[2]POCO、すなわちPlain Old CLR Objectの略で、従来の単純CLR(共通言語実行ライブラリ)オブジェクト、詳細はウィキペディアを参照してください.
原文:Navigation Makes ASP.NET WebForms More Testable