Hi, I am building my website, and although it is very simple, I decided to check as many aspects of it as possible. Using ethics only to write useful tests that could take into account situations that I could imagine (renaming a script or css file, etc.)
I am using the Steve Sanderson MVC integration testing platform and my tests below.
My question is twofold, this is the level of testing "too much", and if not, then what other scenarios (as a developer, for example, renaming, and something else) you might think.
using System.Web; using System.Web.Mvc; using MvcIntegrationTestFramework.Hosting; using NUnit.Framework; using website.Properties; namespace website.tests { [TestFixture] public class HomeControllerIndexTests { [TestFixtureSetUp] public void Setup() { appHost = AppHost.Simulate("Website"); } [Test] public void HomeControllerIndexReturnsTheIndexView() { appHost.Start(session => { var result = session.Get("/Home/Index"); Assert.AreEqual("Index", ((ViewResult)result.ActionExecutedContext.Result).ViewName); }); } [Test] public void HomeControllerIndexReturnsCorrectRouteData() { appHost.Start(session => { var result = session.Get("/Home/Index"); Assert.AreEqual("Home", result.ActionExecutedContext.RouteData.Values["controller"]); }); } [Test] public void HomeControllerIndexReturnsViewResult() { appHost.Start(session => { var result = session.Get("/Home/Index"); Assert.IsInstanceOf(typeof(ViewResult), result.ActionExecutedContext.Result); }); } [Test] public void HomeControllerIndexReturnsNoError() { appHost.Start(session => { var result = session.Get("/Home/Index"); Assert.IsNull(result.ResultExecutedContext.Exception); }); } [Test] public void HomeControllerIndexReturnsViewWithSiteCssFile() { appHost.Start(session => { var result = session.Get("/Home/Index"); Assert.IsTrue(result.ResponseText.Contains("/Content/Site.css")); }); } [Test] public void HomeControllerIndexReturnsViewWithCorrectTitle() { appHost.Start(session => { var result = session.Get("/Home/Index"); Assert.IsTrue(result.ResponseText.ToLowerInvariant().Contains("<title>{ me: danielelliott.info(); }</title>")); }); } [Test] public void HomeControllerIndexReturnsViewContainingBanner() { appHost.Start(session => { var result = session.Get("/Home/Index"); var expected = HttpUtility.HtmlEncode(Resources.SiteName); Assert.IsTrue(result.ResponseText.Contains(expected)); }); } [Test] public void HomeControllerIndexViewIncludesBioParagraph() { appHost.Start(session => { var result = session.Get("/Home/Index"); var expected = HttpUtility.HtmlEncode(Resources.Bio.ToLowerInvariant()); Assert.IsTrue(result.ResponseText.ToLowerInvariant().Contains(expected)); }); } [Test] public void HomeControllerIndexViewIncludesServicesParagraph() { appHost.Start(session => { var result = session.Get("/Home/Index"); var expected = HttpUtility.HtmlEncode(Resources.Services.ToLowerInvariant()); Assert.IsTrue(result.ResponseText.ToLowerInvariant().Contains(expected)); }); } [Test] public void HomeControllerIndexViewIncludesHistoryParagraph() { appHost.Start(session => { var result = session.Get("/Home/Index"); var expected = HttpUtility.HtmlEncode(Resources.History.ToLowerInvariant()); Assert.IsTrue(result.ResponseText.ToLowerInvariant().Contains(expected)); }); } private AppHost appHost; } }
Daniel Elliott
source share