2010-03-21 4 views
4

Может кто-нибудь, пожалуйста, предложите, как я мог бы написать Unit Test с Moq для последующего метода HtmlHelper?Как тестировать устройство HtmlHelper аналогично «using (Html.BeginForm()) {}«

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); 
} 

, который вы будете использовать следующим образом (обратите внимание на using заявление - это вызывает у меня замешательство):

<%--Model is a type of ShareClass--%> 
<% using (Html.GenerateTag<DivTag>(Model)) { %> 
    My Div  
<% } %> 

, используя этот метод, если вы укажете 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; 
    } 
} 

следующий HTML будет оказано:

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

ответ

0

Я думаю, что это 3 ссылки поможет

  1. Подготовка Html Helper https://stackoverflow.com/a/747186/980003
  2. Создать тестовый метод https://stackoverflow.com/a/3424771/980003 (но использовать HtmlHelper из первой ссылки)
  3. Утверждай результат с вами ожидания как обычно.

Вот пример одноразового помощника. Как это выглядит внутри. https://stackoverflow.com/a/8292524/980003

Смежные вопросы