Я являюсь действительно новым в TDD и, на самом деле, я пытаюсь следовать за образцом из своей книги (SportsStore - Pro ASP.NET MVC Framework/Steve Sanderson/APRESS). Я нахожусь на страницах 103-105.
Хотя существует больше на этом, как в новинку для все это, я обеспокоен следующими утверждениями.
ProductsController controller = new ProductsController(repository);
var result = controller.List(2);
//...
относительно вышеупомянутых операторов, когда я пишу это (как в книге),
var products = result.ViewData.Model as IList<Product>;
Я получаю ошибку компилятора "Система. Сеть. MVC.ActionResult" не содержит определение для ViewData..." Но, когда я удаляю Список () от оператора, затем ошибка компилятора исчезает.
var result = controller.List(2);//Doesn't work
var result = controller;//It works
Что-то не так там? Я проверил веб-сайт Apress на ту книгу, но нет ничего перечисленного как Опечатки или проблему. Таким образом, я действительно потерян.
Спасибо за помощь
Это потому, что actionresult не содержит определения для viewdata, а viewresult содержит, а viewresult на самом деле является actionresult, поэтому вы можете преобразовать его в (ViewResult), а затем получить viewdata
var products = ((ViewResult)result).ViewData.Model as IList<Product>;