Codificar pruebas unitarias personalizadas con el marco de pruebas unitarias
El marco de pruebas unitarias admite las pruebas unitarias en Visual Studio. Utilice las clases y los miembros del espacio de nombres Microsoft.VisualStudio.TestTools.UnitTesting cuando codifique pruebas unitarias. Puede utilizarlas cuando escriba la prueba unitaria desde cero o si está adaptando una que generó a partir del código que está probando.
Grupos de elementos
Para ayudar a proporcionar información general más clara del marco de pruebas unitarias, en esta sección se organizan los elementos del espacio de nombres UnitTesting en grupos de funcionalidad relacionada.
Nota
Los elementos de atributo, cuyos nombres concluyen con la cadena Attribute, se pueden utilizar con la cadena o sin ella. Por ejemplo, los dos ejemplos de código siguientes tienen un funcionamiento idéntico:
[TestClass()]
[TestClassAttribute()]
Elementos utilizados para preparar pruebas controladas por datos
Utilice los elementos siguientes para preparar pruebas unitarias controladas por datos. Para obtener más información, vea Cómo: Crear una prueba unitaria controlada por datos y Tutorial: Utilizar un archivo de configuración para definir un origen de datos.
Atributos utilizados para establecer un orden de llamada
Un elemento de código decorado con uno de los atributos siguientes recibe una llamada en el momento en que se especifica. Para obtener más información, vea Anatomía de las pruebas unitarias.
Para los ensamblados
Se llama a AssemblyInitialize y AssemblyCleanup inmediatamente después de que se cargue el ensamblado e inmediatamente antes de que se descargue.
Para las clases
Se llama a ClassInitialize y ClassCleanup inmediatamente después de que se cargue la clase e inmediatamente antes de que se descargue.
Para los métodos Test
Atributos utilizados para identificar clases y métodos Test
Todas las clases Test deben tener el atributo TestClass y todos los métodos Test deben tener el atributo TestMethod. Para obtener más información, vea Anatomía de las pruebas unitarias.
Clases Assert y excepciones relacionadas
Las pruebas unitarias pueden comprobar el comportamiento de aplicaciones concretas según su uso de diversos tipos de instrucciones, excepciones y atributos Assert. Para obtener más información, vea Utilizar las clases Assert.
La clase TestContext
Los atributos siguientes y los valores que tienen asignados aparecen en la ventana Propiedades de Visual Studio para un método Test determinado. Estos atributos no están diseñados para que se permita el acceso a ellos mediante el código de la prueba unitaria. Pero sí afectan a la manera en que se utiliza o se ejecuta la prueba unitaria, bien lo haga usted a través del IDE de Visual Studio, o por el motor de pruebas de Visual Studio. Por ejemplo, algunos de estos atributos aparecen como columnas en la ventana Administrador de pruebas y en la ventana Resultados de pruebas, lo que significa que puede utilizarlos para agrupar y ordenar las pruebas y sus resultados. Uno de estos atributos es TestPropertyAttribute, que se utiliza para agregar metadatos arbitrarios a las pruebas unitarias. Por ejemplo, podría utilizarlo para almacenar el nombre de una prueba superada que cubre esta prueba, marcando la prueba unitaria con [TestProperty("TestPass", "Accessibility")]. O podría utilizarlo para almacenar un indicador de la naturaleza de la prueba: [TestProperty("TestKind", "Localization")]. La propiedad creada utilizando este atributo, y el valor que se le asigna, se muestran en la ventana Propiedades de Visual Studio bajo el encabezado Específico de la prueba.
Clases de configuración de pruebas
Atributos utilizados para generar informes
Los atributos de esta sección relacionan el método de prueba que decoran con entidades de la jerarquía de un proyecto de equipo de Team Foundation Server.
Clases utilizadas con descriptores de acceso privados
Como se explica en Usar Publicize para crear un descriptor de acceso privado, se puede generar una prueba unitaria para un método privado. Esta generación crea una clase de descriptor de acceso privado, que crea instancias de un objeto de la clase PrivateObject. La clase PrivateObject es una clase contenedora que utiliza la reflexión como parte del proceso del descriptor de acceso privado. La clase PrivateType es similar, pero se utiliza para llamar a métodos estáticos privados, en lugar de a métodos de instancia privados.