首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MvcHtmlString类型的单元测试

MvcHtmlString类型的单元测试
EN

Stack Overflow用户
提问于 2012-03-05 22:53:04
回答 1查看 567关注 0票数 0

我有一个返回MvcHtmlString的方法,所以在我的单元测试中,我试图确保返回正确的类型:

代码语言:javascript
复制
[TestMethod]
public void GetTeamNameByAlignmentTest()
{    
    var target01 = MockEventData().First().GetTeamNameByAlignment("HoMe");    
    Assert.IsInstanceOfType(target01, typeof(MvcHtmlString));
}

然而,测试失败了

代码语言:javascript
复制
Assert.IsInstanceOfType failed.  Expected type:<System.Web.Mvc.MvcHtmlString>. Actual type:<System.Web.Mvc.{Dynamic}.DynamicMvcHtmlString>

如何正确测试MvcHtmlString返回类型?

EDIT:方法:

代码语言:javascript
复制
 public MvcHtmlString GetTeamNameByAlignment(String alignment)
        {
        StringBuilder teamName = new StringBuilder();
        if (Participants.First().Alignment.ToLower() == alignment.ToLower())
        {
            teamName.Append(Participants.First().Team.TeamName);
            if (Participants.First().Winning == true)
            {
                teamName.Insert(0, "<b>");
                teamName.Append("</b>");
            } 
        }

        if (Participants.Last().Alignment.ToLower() == alignment.ToLower())
        {

            teamName.Append(Participants.Last().Team.TeamName);
            if (Participants.Last().Winning == true)
            {
                teamName.Insert(0, "<b>");
                teamName.Append("</b>");
            } 
        }

        return MvcHtmlString.Create(teamName.ToString());
    }

编辑2:

模拟数据:

代码语言:javascript
复制
private static IQueryable<Event> MockEventData()
    {
        Team team01 = new Team();
        team01.TeamName = "HomeTeam";

        Team team02 = new Team();
        team02.TeamName = "AwayTeam";


        EventParticipant participant01 = new EventParticipant();
        participant01.Alignment = "home";
        participant01.Team = team01;
        participant01.Winning = false;
        participant01.totalScore = 77;

        EventParticipant participant02 = new EventParticipant();
        participant02.Alignment = "away";
        participant02.Team = team02;
        participant02.Winning = true;
        participant02.totalScore = 99;


        Event event01 = new Event();
        event01.Participants = new List<EventParticipant> {participant01, participant02};

        IQueryable<Event> events = new List<Event> { event01 }.AsQueryable();

        return events;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-05 23:52:44

看一下MvcHtmlStringthis source codeDynamicMvcHtmlString看起来像是运行时创建的MvcHtmlString子类。考虑到这一点,将您的断言更改为:

代码语言:javascript
复制
Assert.IsTrue(target01 is MvcHtmlString);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9568686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档