ASP.NET MVC – 控制器测试的模拟会员资格
我不知道如何为我的控制器测试模拟 ASP.NET 成员资格。
控制器代码:
MembershipUser username = Membership.GetUser();
string UserID = username.UserName.ToString();
有谁知道如何模拟控制器测试? 我正在使用RhinoMocks。
I’m not sure how to mock an ASP.NET Membership for my controller test.
Controller Code:
MembershipUser username = Membership.GetUser();
string UserID = username.UserName.ToString();
Does anyone know how to mock this for a controller test? I'm using RhinoMocks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我已经开始做类似的事情了。 我没有进行真正的模拟,而是创建了一个
FakeMembershipProvider
,它只实现了我需要的最少的MembershipProvider
,并提供了一种设置用户等的方法。 我正在为RoleProvider
做同样的事情。 然后我为我的测试项目设置了 App.config,以便它使用这些作为提供程序。到目前为止,它似乎运作良好。
I've started working on something like this. Rather than doing a true mock, I created a
FakeMembershipProvider
that just implements the minimum ofMembershipProvider
that I need and provides a way to set the users and such. I'm doing the same forRoleProvider
. Then I've set the App.config for my test project so it uses these as the providers.So far, it seems to be working well.
我会观看 MVS StoreFront 系列http://www.asp.net/learn/mvc- videos/
有关模拟的内容 -
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
I would watch the MVS StoreFront Serieshttp://www.asp.net/learn/mvc-videos/
For one on Mocking -
http://www.asp.net/learn/mvc-videos/video-365.aspx
And the Membership one
http://www.asp.net/learn/mvc-videos/video-372.aspx
One for Membership and the view of refactor with OpenID
http://www.asp.net/learn/mvc-videos/video-425.aspx
要模拟与 Membership 静态类连接的对象,您应该在这种情况下使用其抽象类,为了模拟 GetUser() 方法,请使用 MembershipProvider 类,可以进行模拟,只需将其传递给您的控制器即可完成。
祝你好运,如果你有任何问题,现在就告诉我,我会发布一些代码示例。
To mock the objects connectected with Membership static class, you should use its Abstract classes in that case, for mocking the GetUser() method, use MembershipProvider class, it is possible to mock, just pass it to your controller and it's done.
Good luck, if you'll have any problems, just let me now, I'll post up some code examples.