Asp.Netmvc 2 in actionノート-5 MvcContribテストとその他
3572 ワード
MvcContrib
第5章
MvcContrib Gridと進捗ファイルアップロードの使用
MVcContribはコミュニティのオープンソースaspです.Netmvcの強化と拡張ライブラリは、Gridのように効率的に設計され、柔軟にテーブルのレイアウトを制御できます[Web FormのGridViewよりも大幅に簡素化されています]
Codeplexでcomではこの項目を見つけることができます.上にドキュメントがあります.特にGridについて詳細な例を参照してください.以下の図です.
例はMVCContrib.Extras.release.zipで
以下はヘルプ[MVCContrib.release.zip]
テスト
複数のコンポーネントが連携している場合、インタフェースが定義されている場合、Aのような依存コンポーネントがまだ実装されていない場合、Aに依存するプログラムのテストを行う場合は、テスト杭を使用してシミュレーションすることができます.また、あるコンポーネントがデータベースに依存しながら関連する設定が必要であるなど、他のリソースに対するコンポーネントの依存性を低減するために、杭をテストする方法で依存の複雑さを低減することができる.
利用可能なオープンソースライブラリはRhino Mocksです.
A favorite library for automating the creation of mocks and stubs is Rhino Mocks written by Oren Eini ( www.ayende.com/projects/rhino-mocks.aspx ).
[Test]
public void CacheTest()
{
//setup controller w/ fake cache
var fakeCache = MockRepository.GenerateStub<ICache>();
var controller = new HomeController(fakeCache);
//set the cache behavior
fakeCache.Stub(x => x.Exists("test")).Return(false);
//invoke the action
controller.CacheTest();
//the item should have been added to the cache
fakeCache.AssertWasCalled(x => x.Add("test", "value"));
//the item should be retrieved from the cache
fakeCache.AssertWasCalled(x => x.Get<string>("test"));
}
[Test]
public void SessionTest()
{
var controller = new HomeController();
//setup fake session
var httpContext = MockRepository.GenerateStub<HttpContextBase>();
var mockSession = MockRepository.GenerateStub<HttpSessionStateBase>();
httpContext.Stub(x => x.Session).Return(mockSession).Repeat.Any();
//attach fake context/session to controller
controller.ControllerContext = new ControllerContext(httpContext, new RouteData(), controller);
//invoke action
controller.ViewCart();
//verify methods were called
mockSession.VerifyAllExpectations();
}
その他
MS Pressの図書Programming Microsoft ASP.NET MVC 2は、非常に包括的で、この枠組みの発展の歴史と実現分析を詳しく説明した.
特にその例ではProgMvc-Samples.zipは、このフレームワークに関する各方面の拡張、カスタマイズと使用などの各方面を具体的に体現し、各工事下のtodoを具体的に参照する.txt説明.