ASP.NET MVC - 控制器测试的模拟成员资格

时间:2009-03-18 10:11:05

标签: asp.net-mvc unit-testing asp.net-membership

我不确定如何为我的控制器测试模拟ASP.NET成员资格。

控制器代码:

MembershipUser username = Membership.GetUser();
string UserID = username.UserName.ToString(); 

有人知道如何模拟控制器测试吗?我正在使用RhinoMocks。

3 个答案:

答案 0 :(得分:5)

我已经开始研究这样的事情了。我没有做真正的模拟,而是创建了一个FakeMembershipProvider,它只实现了我需要的最小MembershipProvider,并提供了设置用户等的方法。我对RoleProvider做了同样的事情。然后我为我的测试项目设置了App.config,因此它将这些用作提供程序。

到目前为止,它似乎运作良好。

答案 1 :(得分:3)

我会观看MVS StoreFront系列http://www.asp.net/learn/mvc-videos/

关于Mocking的一个 -

http://www.asp.net/learn/mvc-videos/video-365.aspx

会员资格一 http://www.asp.net/learn/mvc-videos/video-372.aspx

一个用于成员资格和使用OpenID重构的视图

http://www.asp.net/learn/mvc-videos/video-425.aspx

答案 2 :(得分:-1)

要模拟与Membership静态类连接的对象,在这种情况下你应该使用它的Abstract类,为了模拟GetUser()方法,使用MembershipProvider类,可以模拟,只需将它传递给你的控制器就可以了

祝你好运,如果你有任何问题,现在就让我吧,我会发布一些代码示例。