Asp.net Mvc Framework 十(測試方法及Filter的樣本)

來源:互聯網
上載者:User
樣本下載:
http://files.cnblogs.com/chsword/MyTestMvc.rar

順遍說一下建立測試的方法
本身Asp.netMvc是提供有測試功能的
在建立Asp.netMVCApplication時,點擊確定,會跳出一個Create Project Test的詢問
如果選Yes就自動建立一個 "工程名+Test"的測試工程
測試工程要引用Rhino.Mock(最新版本3.4)這一開源項目(http://www.ayende.com/projects/rhino-mocks/downloads.aspx)
測試代碼沒有什麼好說的了,看了樣本自然瞭解,Scott的MockHelpers使測試更加方便

可以利用類似以下代碼進行測試    [TestMethod]
        public void Index() {
            HomeController home = new HomeController();
            var viewengin = new FakeViewEngine();
            home.ViewEngine = viewengin;
            MockRepository mock = new MockRepository();
            using (mock.Record()) {
                mock.SetFakeControllerContext(home);
            }
            using (mock.Playback()) {
                home.Index();
                Assert.AreEqual("Index", viewengin.ViewContext.ViewName);
            }
        }

樣本說明
樣本中有個登入功能
有兩個頁面
/Post/Index頁面只有登入後才能查看
/Post/Post頁面只有登入後的admin使用者才能查看
否則就會Error
在驗證登入時我寫了一個擴充方法    public static class ControllerExtension
    {
        public static bool IsPost(this Controller controller) {
            return controller.Request.Form.Count > 0;
        }
    }

登入時我使用Session來儲存使用者登入資訊

所有使用者資訊我在 Global中進行初始化            RegisterRoutes(RouteTable.Routes);
            //將Application代替資料庫用
            Application["Posts"] = new List<Post>();//一個帳號集合
            Application["Accounts"] = new List<Account>();//一個文章集合
            //初始化兩個帳號
            List<Account> la = Application["Accounts"] as List<Account>;
            la.Add(new Account()//這個是管理員
            {
                Username = "admin",
                Password = "admin"
            });
            la.Add(new Account()//這個是普通使用者
            {
                Username = "user",
                Password = "user"
            });

具體的內容看代碼就行了,感冒了...很是難受...手紙用了三卷了....(亂世重典)
Asp.net Mvc Framework 系列

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.