I'm kind of new to unit testing and I am wondering if I'm doing it correct or not.
//Controller
public ActionResult Index()
{
return View("../Message/Index");
}
[TestMethod]
public void MessageViewCorrectTest()
{
var controller = new MessageController();
var result = controller.Index() as ViewResult;
Assert.AreEqual("../Message/Index", result.ViewName);
}
[TestMethod]
public void MessageViewInCorrectTest()
{
var controller = new MessageController();
var result = controller.Index() as ViewResult;
Assert.AreNotEqual("Something/Else", result.ViewName);
}
Am I doing it right, is there a better way or is this good?
Any feedback would be appreciated, thanks in advance.
Here is a way you can do it. You can also verify based on your model type
[TestMethod]
public void TestMethod2()
{
MessageController controller = new MessageController();
ActionResult result = controller.Index(1);
Assert.IsInstanceOfType(result, typeof(ViewResult));
//Since view has been asserted as ViewResult
ViewResult viewResult = result as ViewResult;
if(viewResult != null)
{
Assert.IsInstanceOfType(viewResult.Model, typeof(YourModelType));
//Further Asserts for your model
}
}
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