gpt4 book ai didi

asp.net-mvc - 如何对类似于 "using(Html.BeginForm()){ }"的 HtmlHelper 进行单元测试

转载 作者:行者123 更新时间:2023-12-02 16:58:26 25 4
gpt4 key购买 nike

有人可以建议我如何使用 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);
}

您将按如下方式使用它(请注意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>

最佳答案

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

  1. 准备 Html 助手 https://stackoverflow.com/a/747186/980003
  2. 创建测试方法 https://stackoverflow.com/a/3424771/980003 (但使用第一个链接中的 HtmlHelper)
  3. 照常断言结果符合您的预期。

这是一次性助手的示例。里面看起来怎么样。 https://stackoverflow.com/a/8292524/980003

关于asp.net-mvc - 如何对类似于 "using(Html.BeginForm()){ }"的 HtmlHelper 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com