如何使用扩展方法模拟数据?

时间:2015-10-07 07:58:58

标签: c# unit-testing mocking moq

我想测试这个方法。不完全是因为测试它没有意义,但这是我需要的简单版本。

public bool Test()
{
    var authenticationScheme = Context.GetCurrentAuthenticationScheme();
    return authenticationScheme == "google";
}

GetCurrentAuthenticationScheme是扩展方法。

public static string GetCurrentAuthenticationScheme(this HttpContext context)
{

    var protector = context.ApplicationServices
                           .GetDataProtector(nameof(CookieStateHandlerExtensions));
    return protector.Unprotect(context.Request
                                      .Cookies[CURRENTAUTHENTICATIONSCHEMECOOKIE]
                                      .FirstOrDefault());
}

GetDataProtector 也是“Microsoft.AspNet.DataProtection”的扩展方法
Unprotect 是来自同一命名空间的扩展方法。

我的问题是如何模拟这个(使用Moq)以便GetCurrentAuthenticationScheme()返回我想要的字符串?

0 个答案:

没有答案