链接单元测试中的resx文件
本文关键字:resx 文件 单元测试 链接 | 更新日期: 2023-09-27 18:29:56
我正在Visual Studio 2012中为ASP.NET MVC 4 web应用程序开发一个单元测试项目。该解决方案有3个项目:
- AdminUI
- 单元测试
- WebUI
WebUI在App_GlobalResources文件夹中有一些用于定位的resx文件,它使用:
HttpContext.GetGlobalResourceObject("Resources", key).ToString()
以获取字符串。
现在我需要对一个使用本地化的操作方法进行单元测试。我想在单元测试该方法时获得字符串。
以下是我做的
我设法模拟了GetGlobalResourceObject方法,我可以发送任何需要的字符串
我将Resources.resx文件作为链接添加到UnitTests项目中
我编辑了链接的属性:
- 生成操作:嵌入资源
- 复制到输出目录:不复制
- 自定义工具:GlobalResourceProxyGenerator
我实际上可以使用检索字符串
Resources.stringName
但是,如果我在原始resx文件(WebUI项目中的文件)中添加一个新字符串,那么一切都会崩溃,我无法构建解决方案。
链接不是应该反映原始文件吗?
您所描述的并不是真正的单元测试。单元测试不应依赖于外部资源。
当您说"我成功地模拟了GetGlobalResourceObject
方法"时,我假设您正在使用HttpContextBase.GetGlobalResourceObject(可在控制器中访问)。
因此,出于单元测试的目的,您不需要任何resx文件。只需对该模拟方法设置适当的调用,它就可以返回所需的任何内容。