I'm writing a unit test and I call an action method like this
var result = controller.Action(123);
result is ActionResult
and I need to get the model somehow, anybody knows how to do this?
In my version of ASP.NET MVC there is no Action
method on Controller. However, if you meant the View
method, here's how you can unit test that the result contains the correct model.
First of all, if you only return ViewResult from a particular Action, declare the method as returning ViewResult instead of ActionResult.
As an example, consider this Index action
public ViewResult Index() { return this.View(this.userViewModelService.GetUsers()); }
you can get to the model as easily as this
var result = sut.Index().ViewData.Model;
If your method signature's return type is ActionResult instead of ViewResult, you will need to cast it to ViewResult first.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With