Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difficulty to start up with basic unit test (Sample from my book -- SportsStore)

I'm really new in TDD and, actually, I'm trying to follow the sample from my book (SportsStore -- Pro ASP.NET MVC Framework/Steve Sanderson/APRESS). I'm on pages 103-105.

Although there are more on this, as new to all of this, I'm concerned with the following statements.

ProductsController controller = new ProductsController(repository);
var result = controller.List(2);
     //...

regarding the above statements, when I write this (as in the book),

var products = result.ViewData.Model as IList<Product>;

I get a compiler error "System.Web.MVC.ActionResult" does not contain a definition for ViewData ..." But, when I remove the List() from the statement, then the compiler error disapear.

var result = controller.List(2);//Doesn't work
var result = controller;//It works

Is something wrong there? I checked Apress website for that book, but there is nothing listed as Errata or issue. So I'm really lost.

Thanks for helping

like image 687
Richard77 Avatar asked Apr 28 '10 20:04

Richard77


2 Answers

That is because actionresult does not contains a definition for viewdata howerver viewresult does and viewresult is actually an actionresult so you can cast it to (ViewResult) and then get the viewdata

like image 111
Chino Avatar answered Oct 04 '22 22:10

Chino


var products = ((ViewResult)result).ViewData.Model as IList<Product>;
like image 25
Craig Stuntz Avatar answered Oct 04 '22 20:10

Craig Stuntz