Asp.net-Mvc

“App_GlobalResources”未載入到單元測試案例中

  • February 21, 2019

我有一個測試控制器操作方法的單元測試方法。action 方法使用資源文件來獲取靜態消息。

message = Resources.MyResource.MemberNotVerified;

然而,在這一行拋出的異常是: -

“無法載入文件或程序集‘App_GlobalResources’或其依賴項之一。系統找不到指定的文件。”:“App_GlobalResources”System.IO.IOException {System.IO.FileNotFoundException}

我嘗試在我的測試項目中處理整個資源文件,但沒有成功。

有什麼想法的朋友。

在幕後,App_GlobalResources使用**HttpContext.GetGlobalResourceObject**

當然,單元測試中沒有 HttpContext (除非你嘲笑它)。

如果您如此傾向於嘲笑它,Phil Haack在這裡有一篇不錯的文章。

還有另一種解決方案,就是將 RESX 文件移出正常目錄。

斯科特艾倫在這裡有一個文章。

另一種方法是更改​​您生成的資源文件的類型。

我希望有其他設置方法,但我們在文件的屬性中設置以下設置(在解決方案資源管理器中右鍵點擊文件並選擇屬性):

  • 建構操作:嵌入式資源
  • 複製到輸出目錄:不要複製
  • 自定義工具:PublicResXFileCodeGenerator
  • 資源:資源

引用自:https://stackoverflow.com/questions/4153748