问题
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>
回答1:
I think this 3 links will help
- Prepare Html Helper https://stackoverflow.com/a/747186/980003
- Create test method https://stackoverflow.com/a/3424771/980003 (but use HtmlHelper from first link)
- Assert result with you expectations as normal.
Here is example of disposable helper. How it looks like inside. https://stackoverflow.com/a/8292524/980003
来源:https://stackoverflow.com/questions/2485341/how-to-unit-test-htmlhelper-similar-to-usinghtml-beginform