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説明.