我有一个 ASP.NET 应用程序框架 4,我正在尝试测试一个方法,在该方法中它在某些时候调用:
var userKey = (Guid)Membership.GetUser().ProviderUserKey;
当然,因为没有人连接我收到错误“对象引用未设置为对象的实例”。这是正常的...
有没有人有办法解决这个问题?我应该尝试嘲笑会员资格(但被密封这很敏感)还是应该尝试更换服务?
感谢您的帮助!
编辑:这不是 MVC 应用程序
我有一个 ASP.NET 应用程序框架 4,我正在尝试测试一个方法,在该方法中它在某些时候调用:
var userKey = (Guid)Membership.GetUser().ProviderUserKey;
当然,因为没有人连接我收到错误“对象引用未设置为对象的实例”。这是正常的...
有没有人有办法解决这个问题?我应该尝试嘲笑会员资格(但被密封这很敏感)还是应该尝试更换服务?
感谢您的帮助!
编辑:这不是 MVC 应用程序
我想我找到了答案,我最终使用了这样的东西:
Mock<IStaticMembershipService> membershipMock = new Mock<IStaticMembershipService>();
Mock<MembershipUser> userMock = new Mock<MembershipUser>();
userMock.Setup(u => u.ProviderUserKey).Returns(guid);
membershipMock.Setup(s => s.GetUser()).Returns(userMock.Object);
班上:
public interface IStaticMembershipService
{
MembershipUser GetUser();
void UpdateUser(MembershipUser user);
}
public class StaticMembershipService : IStaticMembershipService
{
public System.Web.Security.MembershipUser GetUser()
{
return Membership.GetUser();
}
public void UpdateUser(MembershipUser user)
{
Membership.UpdateUser(user);
}
}