我想測試我的AccountController
。問題是,在註冊方法我用下一行創建用戶:如何在使用Membership時測試ASP.NET MVC 3身份驗證
Membership.CreateUser(model.Email, model.Password, model.Email, null, null, true, null, out createStatus);
在Web應用程序,我用一個CustomMembershipProvider
,我設置使用的web.config。在我的單元測試會員課程標準SqlMembershipProvider
。而不是我在我的應用程序中使用的CustomMembershipProvider
。
如何設置單元測試環境中的成員資格?我的意思是以編程方式將其設置爲asp網絡在讀取web.config文件後設置它。
我已經使用接口來模擬用戶管理數據層,但我在想這種情況下是否有避免接口的方法。能夠在單元測試中建立模擬的成員資格實施。
public void RegisterTest()
{
IUsersManager repository = new Tests.Data.UsersManager();
AccountController target = new AccountController(repository);
//be able to set Membership underlying provider
Membership.Provider = new MockMembershipProvider();
}
不應該'AspDotNetMembershipProvider'實現接口?像公共類AspDotNetMembershipProvider:IMembershipProvider {...' – marapet 2012-02-05 21:52:50
糟糕,當然它應該。更正,謝謝:) – 2012-02-05 22:20:54
'Membership'類是靜態的......但潛在的供應商是通過ASP運行時設置......我想,我也可以設置它 – 2012-02-06 10:23:05