2010-07-06 26 views
2

測試工具中的WCF項目。測試中看到的WCF位置

爲什麼會HttpContext.Current.Server.MapPath(「〜/」);或 HttpContext.Current.Server.MapPath(「。」);

在我的測試失敗?

我正試圖爲現有的應用程序放在一起的PDF建築模塊。我必須確定在哪裏編寫最終輸出。

TIA

回答

4

單元測試是失敗的原因是因爲HttpContext.Current需要這幾乎是不可能在一個單元測試來重新創建ASP.NET環境。像ASP.NET MVC這樣的框架使用HttpContextBase抽象出來,這在單元測試中很容易被模擬。

另外你不應該在WCF中使用HttpContext。如果你自己託管你的WCF服務,它不僅會在單元測試中受到打擊,而且會在執行時更糟糕。

結論:

  • 你寫的方法HttpContext.Current定義每當這個方法是不是可以進行單元測試,所以不要去嘗試對其進行測試。
  • 切勿使用WCF中HttpContext.Current(如果你不僅在WCF :-)看了前面點)
+1

+1阿門,兄弟! :-) – 2010-07-06 17:15:46

+0

將使用relativePath = AppDomain.CurrentDomain.BaseDirectory; 謝謝 – SteveO 2010-07-06 20:57:52