我正在尝试为访问我的数据层以获取字符串的 HtmlHelper 创建一个单元测试。我看过很多关于这个的帖子,我可能遗漏了一些东西。我遇到的问题是如何模拟对数据层的访问?我通常通过构造函数进行依赖注入,但我不能在这里,因为 html 帮助程序需要是静态的。所以我已经通过一个属性设置了注入,但是我如何从我的单元测试中访问它。对不起,如果这很明显,但它现在把我搞砸了。
这是我所拥有的 -
public static class StringResourceHelper
{
#region Private Members
private static IStringResourceService _service;
#endregion
#region Public Properties
private static IStringResourceService Service
{
get
{
if(_service==null)
{
_service = (IStringResourceService)Bootstrapper.Container.Resolve(typeof(IStringResourceService));
}
return _service;
}
}
#endregion
#region Public Methods
public static string StringResource(this HtmlHelper helper, string label)
{
int languageCode;
if(helper.ViewData["LanguageCode"] == null || !Int32.TryParse(helper.ViewData["LanguageCode"].ToString(), out languageCode))
{
languageCode = Constants.LanguageCodes.English;
}
return Service.GetString(label, languageCode);
}
#endregion
}
如何模拟 Service.GetString 调用?