Привет, я собираю свой веб-сайт, и, хотя он очень простой, я решил протестировать как можно больше его аспектов. Руководствуясь идеей написания только полезных тестов, которые могут объяснить ситуации, которые я могу себе представить, (переименование скрипта или файла css и т. д.)
Я использую среду тестирования MVC Integration Стива Сандерсона, и мои тесты приведены ниже.
Мой вопрос состоит из двух частей: является ли этот уровень тестирования «слишком интенсивным», и если нет, то какие другие сценарии, (связанные с разработчиком, такие как переименование или что-то еще), вы можете придумать.
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;
}
}