NUinit CollectionAssert не работает должным образом - PullRequest
0 голосов
/ 11 декабря 2010

У меня есть класс модели представления следующим образом:

public class MyViewModel
    {
        // Other properties......

        public IEnumerable<SelectListItem> SecurityQuestions { get; set; }
    }

В моем контроллере у меня есть следующий код:

public ViewResult Index()
{
    var viewModel = new MyViewModel {SecurityQuestions = GetSecurityQuestions()};

    return View(viewModel);
}

public IEnumerable<SelectListItem> GetSecurityQuestions()
{
    return new SelectList(_securityQuestionService.GetAll(),
                          "SecurityQuestionID",
                          "Question");
}

Я написал модульный тест для проверки действия IndexМетод:

  [Test]
    public void Can_Load_View_With_Security_Questions()
    {
        var result = _controller.Index();
        var questions = _controller.GetSecurityQuestions();
        var viewModel = result.ViewData.Model as MyViewModel;

        CollectionAssert.AreEqual(questions, viewModel.SecurityQuestions);
    }

Я ожидал, что этот тест пройдет без проблем.Но я получаю следующую ошибку:

Expected: <System.Web.Mvc.SelectList>
 But was: <System.Web.Mvc.SelectList>

Почему это происходит?

1 Ответ

0 голосов
/ 12 декабря 2010

Я ожидал, что этот тест пройдет без проблем

Почему вы ожидаете такого?Проблема может быть связана с тем, что вы вызываете метод _securityQuestionService.GetAll() дважды.Первый раз в действии контроллера и второй раз в вашем модульном тесте, которые могут отличаться.Также тип SelectList не переопределяет метод Equals, поэтому вы испытываете нормальное поведение.

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