Трудность запустить с тестом основной единицы (Образец из моей книги — SportsStore)

Я являюсь действительно новым в 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 на ту книгу, но нет ничего перечисленного как Опечатки или проблему. Таким образом, я действительно потерян.

Спасибо за помощь

5
задан Richard77 28 April 2010 в 20:33
поделиться

2 ответа

Это потому, что actionresult не содержит определения для viewdata, а viewresult содержит, а viewresult на самом деле является actionresult, поэтому вы можете преобразовать его в (ViewResult), а затем получить viewdata

8
ответ дан 13 December 2019 в 22:03
поделиться
var products = ((ViewResult)result).ViewData.Model as IList<Product>;
1
ответ дан 13 December 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: