Home > DeveloperSection > Articles > Testing View in MVC

Testing View in MVC

Posted by  Rohit Kesharwani
on    October-06-2011 17:19 PM

ASP.NET MVC ASP.NET MVC 
Ratings:
0 Comment(s)
 2591  View(s)
Rate this:

Testing View in MVC

In this article, I am going to demonstrates how to test the view returned by a controller action.

You can know how to test the view returned by a controller action, how to test the View Data returned by a controller action, and how to test whether or not one controller action redirects you to a second controller action.

Here I am going to create Unit Test project in MVC:
Open Microsoft Visual Studio
à New Project à ASP.NET MVC3 Web Application.

Testing View in MVC

Select Internet Application from New ASP.NET MVC3 Project template and select Visual Studio Unit Test for the Test Framework.

Testing View in MVC

Delete pre-existence file from a Controller folder that exists in .Tests extension.

Testing View in MVC

ProductController.cs
The ProductController contains two action methods named Index() and Details(). Both action methods return a view. The Details() action accepts a parameter named Id.

using System;

using System.Web.Mvc;

namespace Store.Controllers

{

    public class ProductController : Controller

    {

        public ActionResult Index()

        {

            throw new NotImplementedException();

        }

        public ActionResult Details(int Id)

        {

            return View("Details");

        }

    }

}

After creating a Controller, create a unit test for the controller:

Right click on the Controller folder à Add à New Test.
Select Basic Unit Test from Add New Test template.

Testing View in MVC

ProductControllerTest.cs
In ProductControllerTest.cs  we test that whether ProductController returns the right view or not. We want to make sure that when the ProductController.Details() action is invoked, the Details view is returned. The test class in Listing 2 contains a unit test for testing the view returned by the ProductController.Details() action.

using System.Web.Mvc;

using Microsoft.VisualStudio.TestTools.UnitTesting;

using Store.Controllers;

 

namespace StoreTests.Controllers

{

    [TestClass]

    public class ProductControllerTest

    {

        [TestMethod]

        public void TestDetailsView()

        {

            var controller = new ProductController();

            var result = controller.Details(2) as ViewResult;

            Assert.AreEqual("Details", result.ViewName);

 

        }

    }

}

If ProductController returns the matched View the result will come Passed else the result will be Aborted. Our Product controller return the matched View that’s why Result comes Passed.

Testing View in MVC

The above process indicates how to test the View returned by the Controller action with the help of Visual Studio Unit Test project.
















Recent Activities

samuel fernanandes Created New Discussion Working with sessions and POST   3 hours ago

Barbara Jones added new Question What is ANR?   4 days ago

Kamlakar Singh added new Blog Convert Text Document to PDF File   17 days ago

Kamlakar Singh added new Article Introduction to Backbone.js   17 days ago

Don't want to miss updates? Please click the below button!