How to Unit Test HtmlHelper similar to using(Html.BeginForm()){ }
- by DaveDev
Can somebody please suggest how I could write a Unit Test with Moq for following HtmlHelper method?
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);
}
which you would use as follows (please note the using statement - this is causing me confusion):
<%--Model is a type of ShareClass--%>
<% using (Html.GenerateTag<DivTag>(Model)) { %>
My Div
<% } %>
using this method, if you specify T as type DivTag, where ShareClass is defined as
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;
}
}
the following html will be rendered:
<div class="ShareClass" shareclass-type="ShareClass_A" shareclass-name="MyShareClass">My Div</div>