需要用户登录的UnitTest ASP.NET应用程序
发布时间:2020-12-16 06:58:59 所属栏目:asp.Net 来源:网络整理
导读:我有一个允许用户登录的ASP.NET应用程序.我的应用程序的另一部分使用UserId(用户必须登录才能访问控制器).如何伪造单元测试登录? 以下是我获取UserId的方法 Private _UserId As Guid Public ReadOnly Property UserId() As Guid Get _UserId = System.Web.S
我有一个允许用户登录的ASP.NET应用程序.我的应用程序的另一部分使用UserId(用户必须登录才能访问控制器).如何伪造单元测试登录?
以下是我获取UserId的方法 Private _UserId As Guid Public ReadOnly Property UserId() As Guid Get _UserId = System.Web.Security.Membership.GetUser().ProviderUserKey Return _UserId End Get End Property 谢谢 编辑 这是一个MVC 3项目. 解决方法
您可以为您的成员编写一个包装类,这样您就可以创建一个Mock以用于您的单元测试.代码在C#中,我道歉但你会明白我的观点.
public interface IMyMemberShip { Guid GetUserId(); } public class MyMemberShip : IMyMemberShip { public Guid GetUserId() { return (Guid)System.Web.Security.Membership.GetUser().ProviderUserKey; } } public class MockMyMembership : IMyMemberShip { public Guid GetUserId() { return Guid.NewGuid(); } } public class AnotherPartOfYourApplication { IMyMemberShip _myMembership; public AnotherPartOfYourApplication(IMyMemberShip myMemberShip) { _myMembership = myMemberShip; } public void GetUserIdAndDoSomething() { var userId = _myMembership.GetUserId(); } } 如果你没有在你的模拟中做复杂的东西,我可能会使用moq,所以你在单元测试中根本不需要模拟类. var mock = new Mock<IMyMemberShip>(); mock.Setup(m => m.GetUserId()).Returns(Guid.NewGuid()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – IIS挂起在ASP.NET MVC 3应用程序中的特定
- asp.net – 调试:当类型IS标记为可序列化时,如何调试“类型
- asp.net – 如何禁用viewstate的aspx页面?
- 确定ASP.NET站点的“活动”用户数
- asp.net-mvc – MVC简单模型绑定无法正常工作
- asp.net-mvc – 创建一个值为0到10的asp.net mvc下拉列表的
- asp.net – 跟踪广告链接点击但保持SEO友好链接?
- 实体框架 – ASP.NET OData – 使用带数据传输对象的Delta实
- iis – 在ASP类中处理End Request事件
- asp.net – 为什么visual studio给我类型没有为我的App_Cod
推荐文章
站长推荐
热点阅读