[英]Creating a MSTest Unit Test on a method that calls on Membership - ASP.NET application
我有一個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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.