модульный тест для типа MvcHtmlString - PullRequest
0 голосов
/ 05 марта 2012

У меня есть метод, который возвращает MvcHtmlString, поэтому в своем модульном тесте я пытаюсь убедиться, что правильный тип возвращается:

[TestMethod]
public void GetTeamNameByAlignmentTest()
{    
    var target01 = MockEventData().First().GetTeamNameByAlignment("HoMe");    
    Assert.IsInstanceOfType(target01, typeof(MvcHtmlString));
}

Однако тест не пройден

Assert.IsInstanceOfType failed.  Expected type:<System.Web.Mvc.MvcHtmlString>. Actual type:<System.Web.Mvc.{Dynamic}.DynamicMvcHtmlString>

Как правильно проверить тип возвращаемого значения MvcHtmlString?

РЕДАКТИРОВАТЬ: Метод:

 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:

Проверенные данные:

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

1 Ответ

1 голос
/ 05 марта 2012

Глядя на этот исходный код для MvcHtmlString, DynamicMvcHtmlString выглядит как созданный во время выполнения подкласс MvcHtmlString.Имея это в виду, как насчет изменения вашего утверждения на:

Assert.IsTrue(target01 is MvcHtmlString);

?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...