程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net Mvc Framework 十(測試方法及Filter的示例)

Asp.net Mvc Framework 十(測試方法及Filter的示例)

編輯:關於ASP.NET

順遍說一下建立測試的方法

本身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"
});

具體的內容看代碼就行了,感冒了...很是難受...手紙用了三卷了....

示例下載

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved