當嘗試爲在ASP.NET MVC框架中編寫的程序運行單元測試時,出現NullReferenceException異常。HttpContextBaseExtensions.GetOwinContext在嘗試運行時拋出NullReferenceException單元測試
測試失敗。 System.NullReferenceException:對象引用不是 設置爲對象的實例。在 System.Web.HttpContextBaseExtensions.GetOwinContext(HttpContextBase 上下文)
當我嘗試執行Logoff
方法發生此錯誤。
public ActionResult LogOff()
{
SessionWrapper.SetInSession("_Settings", null);
AuthenticationManager.SignOut();
return RedirectToAction("Index", "Home");
}
public class HttpContextSessionWrapper : ISessionWrapper
{
public T GetFromSession<T>(string key)
{
if (!string.IsNullOrEmpty(key))
return (T)HttpContext.Current.Session[key];
else
return default(T);
}
public void SetInSession(string key, object value)
{
if (!string.IsNullOrEmpty(key))
HttpContext.Current.Session[key] = value;
}
}
在ASP.NET MVC中編寫單元測試時,如何解決此NullReferenceException問題?
你原來的問題太寬泛了。我編輯它,所以它不會被關閉。這個問題是正確的範圍,但我們仍然需要一些信息:你如何嘲笑HttpContextBase?如果你不嘲笑外部類,它們將是空的,你將得到一個NRE。你需要閱讀像Rhino Mocks這樣的模擬框架。 –
@GeorgeStocker謝謝! –