gpt4 book ai didi

c# - 在单元测试中链接 resx 文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:24 25 4
gpt4 key购买 nike

我正在 Visual Studio 2012 中为 ASP.NET MVC 4 Web 应用程序开发一个单元测试项目。该解决方案有 3 个项目:

  • 管理界面
  • 单元测试
  • 网页界面

WebUI 在 App_GlobalResources 文件夹中有一些用于定位的 resx 文件,它使用:

HttpContext.GetGlobalResourceObject("Resources", key).ToString()

获取字符串。

现在我需要对使用本地化的操作方法进行单元测试。我想在对该方法进行单元测试时获取字符串。

这是我做的

我设法模拟了 GetGlobalResourceObject 方法,我可以发送我需要的任何字符串

我将 Resources.resx 文件作为链接添加到 UnitTests 项目

我编辑了链接的属性:

  • 构建操作:嵌入式资源
  • 复制到输出目录:不复制
  • 自定义工具:GlobalResourceProxyGenerator

我实际上可以使用以下方法检索字符串:

Resources.stringName

但是,如果我在原始 resx 文件(WebUI 项目中的那个)中添加一个新字符串,一切都会崩溃,我无法构建解决方案。

链接不应该反射(reflect)原始文件吗?

最佳答案

您所描述的并不是真正的单元测试。单元测试不应依赖外部资源。

当您说“我设法模拟了 GetGlobalResourceObject 方法”时,我假设您正在使用 HttpContextBase.GetGlobalResourceObject(可在您的 Controller 中访问)。

因此,出于单元测试目的,您不需要任何 resx 文件。只需对该模拟方法设置适当的调用,它就会返回所需的任何内容。

关于c# - 在单元测试中链接 resx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com