考慮一個方法在.NET組件:起定量:單元測試依靠HttpContext的方法
public static string GetSecurityContextUserName()
{
//extract the username from request
string sUser = HttpContext.Current.User.Identity.Name;
//everything after the domain
sUser = sUser.Substring(sUser.IndexOf("\\") + 1).ToLower();
return sUser;
}
我想打電話從使用Moq的框架單元測試此方法。這個程序集是webforms解決方案的一部分。單元測試看起來像這樣,但我缺少Moq代碼。
//arrange
string ADAccount = "BUGSBUNNY";
string fullADName = "LOONEYTUNES\BUGSBUNNY";
//act
//need to mock up the HttpContext here somehow -- using Moq.
string foundUserName = MyIdentityBL.GetSecurityContextUserName();
//assert
Assert.AreEqual(foundUserName, ADAccount, true, "Should have been the same User Identity.");
問題:
- 我如何使用最小起訂量來安排與像 'MYDOMAIN \ MYUSER' 一些價值假的HttpContext對象?
- 我如何在
MyIdentityBL.GetSecurityContextUserName()
有我的電話,假冒聯想到我的靜態方法? - 你有關於如何提高這個代碼/架構有什麼建議?
不能使用新HttpContextBase(),因爲它是一個抽象類(顧名思義)。您需要使用新的HttpContextWrapper()。 – 2009-11-19 17:53:23
謝謝......當我回答這個問題時,我的腦袋超出了我的預期;) – womp 2009-11-19 20:12:09