Asp.net mvc 如何对HtmlHelper进行单元测试,类似于;使用(Html.BeginForm()){}";

Asp.net mvc 如何对HtmlHelper进行单元测试,类似于;使用(Html.BeginForm()){}";,asp.net-mvc,unit-testing,nunit,moq,html-helper,Asp.net Mvc,Unit Testing,Nunit,Moq,Html Helper,有人能建议我如何用Moq编写一个单元测试来遵循HtmlHelper方法吗 public static HtmlTagBase GenerateTag<T>(this HtmlHelper htmlHelper , object elementData , object attributes) where T : HtmlTagBase

有人能建议我如何用Moq编写一个单元测试来遵循HtmlHelper方法吗

public static HtmlTagBase GenerateTag<T>(this HtmlHelper htmlHelper
                                   , object elementData
                                   , object attributes) 
    where T : HtmlTagBase
{
    return (T)Activator.CreateInstance(typeof(T)
                                       , htmlHelper.ViewContext
                                       , elementData
                                       , attributes);
}
使用此方法,如果将
T
指定为类型
DivTag
,其中ShareClass定义为

public class ShareClass
{
    public string Name { get; set; }
    public string Type { get; set; }
    public IEnumerable<Fund> Funds { get; set; }

    public ShareClass(string name, string shareClassType)
    {
        this.Name = name;
        this.Type = shareClassType;
    }
}
公共类共享类
{
公共字符串名称{get;set;}
公共字符串类型{get;set;}
公共IEnumerable基金{get;set;}
公共共享类(字符串名称、字符串共享类类型)
{
this.Name=Name;
this.Type=shareClassType;
}
}
将呈现以下html:

<div class="ShareClass" shareclass-type="ShareClass_A" shareclass-name="MyShareClass">My Div</div>
我的Div

我认为这3个链接会有所帮助

  • 准备Html助手
  • 创建测试方法(但从第一个链接使用HtmlHelper)
  • 以您的期望作为正常结果
  • 以下是一次性助手的示例。里面看起来怎么样

    <div class="ShareClass" shareclass-type="ShareClass_A" shareclass-name="MyShareClass">My Div</div>