簡體   English   中英

在調用Membership - ASP.NET應用程序的方法上創建MSTest單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM