Hola estoy armando mi sitio web y, aunque es muy simple, decidí probar tantos aspectos como pude. Usando el espíritu de solo escribir pruebas útiles que podrían dar cuenta de situaciones que podría imaginar sucediendo (cambio de nombre de un script o archivo css, etc.)¿Demasiadas pruebas en vista simple?
Estoy usando el marco de prueba de integración MVC de Steve Sanderson y mis pruebas están a continuación.
Mi pregunta es doble, es este nivel de prueba "demasiado" y si no, ¿qué otros escenarios (relacionados con el desarrollador como el cambio de nombre o cualquier otra cosa) se puede pensar.
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;
}
}
Intenté señalar que se trataba de pruebas de integración. De acuerdo de todo corazón: ¡prueba los comportamientos en pruebas unitarias! –