Pruebas unitarias
Introducción a las pruebas unitarias
Las pruebas unitarias son la mejor forma de probar el código de una aplicación a lo largo de su desarrollo. Por un lado, estas pruebas permiten asegurar que los métodos devuelven resultados correctos, teniendo en cuenta los argumentos que se le pasan y, por otro lado, se pueden utilizar para hacer Test Driven Development. Se trata de una técnica en la que las pruebas se escriben antes que las clases y los métodos. De esta manera, serán las pruebas las que van a definir el desarrollo y no a la inversa.
1. La creación del proyecto
Visual Studio ofrece una plantilla de proyecto para las pruebas unitarias: Proyecto de prueba unitaria «MSTest».
Agregue un proyecto de prueba unitaria a la solución SelfMailer (Archivo - Agregar - Nuevo proyecto... - Proyecto de prueba de MSTest) y llámelo UnitTest.
Visual Studio crea la solución añadiendo la referencia a la librería Microsoft.VisualStudio.QualityTools.UnitTestFramework, que contiene las clases que permiten crear las pruebas. También se añade el archivo UnitTest1.cs. En este archivo es donde se escriben las pruebas.
2. Las clases de pruebas unitarias
El espacio de nombres que se usa para las pruebas unitarias es Microsoft.VisualStudio.TestTools.UnitTesting. Contiene la clase principal que permite hacer las pruebas: la clase estática Assert permite realizar afirmaciones...
La puesta en marcha de una serie de pruebas
1. Crear pruebas del proyecto
Renombre el archivo UnitTest1.cs en MailServerSettingsTest.cs, elimine el método TestMethod1 y declare una variable pública de tipo TestContext:
public TestContext TestContext { get; set; }
A partir de este momento, tendrá una clase lista para recibir los métodos de prueba. Para relacionarla con el proyecto SelfMailer, añada una referencia al proyecto. Desde el menú contextual de la carpeta Referencias del proyecto UnitTest seleccione Añadir una referencia.... Elija el proyecto SelfMailer desde la pestaña Solución - Proyectos.
Añada el método FromEmailTestValid en el archivo MailServerSettingsTest.cs:
[TestMethod()]
public void FromEmailTestValid()
{
MailServerSettings target = new MailServerSettings();
string expected = "test@abc.com";
string actual;
target.FromEmail = "test@ab.com";
actual = target.FromEmail;
Assert.AreEqual(expected, actual);
}
Añada una referencia al espacio de nombres SelfMailer.Library en el encabezado del archivo MailServerSettingsTest.cs:
using SelfMailer.Library;
El método instancia un objeto del tipo MailServerSettings llamado target y después dos variables...