I have never run Unit testing before and I am just trying to run an example I have found on the net over and over in regards to the view name.
My Test code is:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Admin.Web.API.Controllers; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Web.Mvc; namespace Admin.Web.API.Controllers.Tests { [TestClass()] public class HomeControllerTests { [TestMethod()] public void IndexTest() { HomeController controller = new HomeController(); var result = controller.Index() as ViewResult; Assert.AreEqual("Index", result.ViewName); } } } The error I am getting is System.NullReferenceException: Object reference not set to an instance of an object. on the Line that sets the view result.
What do I need to do to get this working? Is there anything out there that is more descriptive as to Unit testing examples?
Edit one
Controller Code for Index
public ActionResult Index() { if (this.Session["UserID"] == null) { return View("Login"); } else { ViewBag.Title = "Index"; ViewBag.SiteID = this.Session["SiteID"]; ViewBag.AssemblyVersion = this.Session["AssemblyVersion"]; ViewBag.UserFirstName = this.Session["FirstName"]; GoogleAnalytics _oGoogleAnalytics = new GoogleAnalytics(); ViewBag.GoogleAnalytics = _oGoogleAnalytics.GetGoogleAnalytics( this.Session["GoogleAnalyticsAccountCode"].ToString(), Convert.ToBoolean(this.Session["UseGoogleAnalytics"])); return View("Index"); } }
controller.indexline