我需要在使用FederatedAuthentication对用户进行身份验证的WebAPI项目上运行单元测试。
此行会引发错误,因为HttpContext
为null
:
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionSecurityToken);
在其他地方,我使用助手来定义HttpContext
:
public class HttpContextHelper
{
private static HttpContextBase m_context;
public static HttpContextBase Current
{
get
{
if (m_context != null)
return m_context;
if (HttpContext.Current == null)
throw new InvalidOperationException("HttpContext not available");
return new HttpContextWrapper(HttpContext.Current);
}
}
public static void SetCurrentContext(HttpContextBase context)
{
m_context = context;
}
}
在我通常会引用HttpContext.Current
的任何地方,我都使用HttpContextHelper.Current
。
我在这个帖子中看到了TypeMock Isolator:How to unit test code that uses FederatedAuthentication.SessionAuthenticationModule
帖子暗示我应该使用
Isolate.WhenCalled(() => FederatedAuthentication.SessionAuthenticationModule).WillReturn(<a fake value>);
但是我放入什么/假值/ ??
我是单位测试的新手,因此之前从未使用过模拟,所以我们会感激一些指导。感谢。