Testing Action Method without using FormCollection
Testing Action Method without using FormCollection
I have a controller with action method below and I would like to Test using the Rhino Moq. The person model has first name and lastname properties. To test this action method I need to pass model and I have used FormCollection for it. Is there any other way to pass model object for testing this Index method. Reason for it is if PersonModel has lots of properties may be 100 or more it is really difficult to list them all on form collection.
public async Task<ActionResult> Index()
var model = new PersonModel();
var isBinding = TryUpdateModel(model,includeProperties:new
"firstName","lastname")
.......
To pass the model object from Unit test side, I did something like this
FormCollection p = new FormCollection();
p.Add("FirstName", "TestFirstName");
p.Add("LastName", "TestLastName");
controller.ValueProvider = p.ToValueProvider();
Instead of Creating the form element and setting the value, is there any way to directly pass object to test controller? Thanks
FormCollection
TryUpdateModel
public async Task<ActionResult> Index(PersonModel model) ....
Thanks for contributing an answer to Stack Overflow!
But avoid …
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
But avoid …
To learn more, see our tips on writing great answers.
Required, but never shown
Required, but never shown
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
Not sure why you would ever want to use
FormCollection
andTryUpdateModel
. Just add the model as a parameter so that its all bound -public async Task<ActionResult> Index(PersonModel model) ....
– user3559349
Sep 1 at 2:09