C #. Ejemplo de creación de una prueba unitaria en MS Visual Studio.

  1. Contenido
  2. Ejecución
  3. 2. Preparación del texto del módulo Program.cs.
  4. 2.2. Hacer pública la clase del programa.
  5. 3. Listado del programa probado.
  6. 4. Crear una prueba
  7. 4.1. Añadiendo un nuevo proyecto a la solución.
  8. 4.2. Estructura de la solución
  9. 4.3. El texto del archivo "UnitTest1.cs". Atributos [TestMethod] y [TestClass]
  10. 4.4. Haciendo cambios al texto del módulo UnitTest1. Cambiando el nombre del método de prueba
  11. 4.5. Conectando el proyecto MinApp al proyecto TestMinApp
  12. 4.6. Realizar cambios en el texto del módulo UnitTest1.cs.
  13. 4.6.2. Texto del método TestMin ()
  14. 4.7. UnitTest1.cs texto del módulo
  15. 5. Ejecutar la prueba y comprobar el resultado de la prueba.
  16. 6. El resultado. Interacción entre proyectos.

Este tema describe el proceso paso a paso de crear una prueba de unidad simple en Microsoft Visual Studio 2010 (C #) para una aplicación como la aplicación de consola. Usando este ejemplo, puedes aprender cómo crear tus propias pruebas de unidad. El ejemplo también demuestra el uso de la clase Assert para probar el funcionamiento de las funciones.

Contenido

El estado del problema.

Para una aplicación como Aplicación de consola, desarrolle una prueba de unidad que pruebe el funcionamiento de la función Mín (), que determina el elemento máximo de tres números.

Para la función Min (), configure el método de prueba en TestMin (). Compruebe la función.

Ejecución

1. Crea una aplicación usando la plantilla de aplicación de consola.

Ejecute MS Visual Studio 2010 para su ejecución. Para crear un proyecto utilizando el patrón de aplicación de consola, se debe llamar a la siguiente secuencia de comandos:

Archivo -> Nuevo -> Proyecto ...

Como resultado, se abre la ventana Nuevo proyecto. En la ventana, seleccione la plantilla de la aplicación de consola como se muestra en la Figura 1. La plantilla se selecciona en la pestaña de Visual C #.

Visual C # -> Aplicación de consola

Visual C # -> Aplicación de consola

La figura 1. Ventana "Nuevo Proyecto". Elegir una aplicación de tipo de aplicación de consola

2. Preparación del texto del módulo Program.cs.

2.1. Añadir función Min () al texto del módulo

En el cuerpo de la clase Programa, agregue el texto de la función Min ().

La función se declara como pública (estática) y pública. Texto de la función min ()

public static int Min (int a, int b, int c) {int min = a; si (min> b) min = b; si (min> c) min = c; retorno min; }

public static int Min (int a, int b, int c) {int min = a;  si (min> b) min = b;  si (min> c) min = c;  retorno min;  }

La figura 2. Vista de la ventana de MS Visual Studio 2010, módulo "Program.cs"

2.2. Hacer pública la clase del programa.

Para tener acceso a la función Min () de la clase Programa, debe hacer que esta clase esté disponible públicamente. Para hacer esto, antes de declarar una clase, necesita definir la palabra clave pública.

... espacio de nombres MinApp {programa público de clase {// métodos de clase // ...}} ...

Después de eso, el programa de prueba está listo.

3. Listado del programa probado.

Por el momento, el listado del programa que se está probando es el siguiente:

utilizando el sistema; utilizando System.Collections.Generic; utilizando System.Linq; utilizando System.Text; namespace MinApp {public class Program {public static int Min (int a, int b, int c) {int min = a; si (min> b) min = b; si (min> c) min = c; retorno min; } static void Main (string [] args) {Console.WriteLine ("Demo of Unit-testing in C #."); }}}

Dado que este programa se probará desde otro módulo de prueba, no es necesario ingresar nada más en la función Main (). Porque, de acuerdo con la condición del problema, debe probar el funcionamiento de la función Mín. (). Y esto se hará desde el módulo de pruebas. Por el momento, nuestro programa está listo para la prueba.

4. Crear una prueba

La prueba es creada por un proyecto separado (Proyecto) en la solución (Solución). El programa que se está probando no lo sabe. El programa que probará (el programa de prueba) llamará a las funciones del programa que se está probando. En nuestro caso, el programa de prueba llamará a la función.

int min (int, int, int);

4.1. Añadiendo un nuevo proyecto a la solución.

Para esta solución (Solución) necesita agregar un nuevo proyecto usando el comando

Archivo-> Añadir-> Nuevo proyecto ...

La ventana para crear un nuevo proyecto se muestra en la Figura 3.

La figura 3. Ventana para crear un proyecto de tipo Test Project.

Se selecciona un grupo de plantillas de Visual C # -> Prueba en la ventana. De las plantillas mostradas, se selecciona la plantilla de proyecto "Proyecto de prueba". En el campo "Nombre" se indica el nombre del proyecto que probará nuestro programa. Es necesario configurar, por ejemplo, TestMinApp. El proyecto se encuentra en una carpeta separada "E: \ Test \ MinApp".

El proyecto se encuentra en una carpeta separada E: \ Test \ MinApp

La figura 4. El texto del módulo UnitTest1.cs. Ventana de utilidad del Explorador de soluciones con proyectos de TestMinApp y MinApp mostrados

4.2. Estructura de la solución

Como se puede ver en la Figura 4, la utilidad del Explorador de soluciones muestra la estructura Elementos de la solución, que contiene dos proyectos:

  • Proyecto MinApp. Este es un proyecto creado usando la plantilla de la aplicación de consola con la función Min () que desea protestar;
  • Proyecto TestMinApp. Este proyecto está diseñado para probar las características del proyecto MinApp. El código del programa que prueba la función Min () se ingresará en el archivo de proyecto UnitTest1 del proyecto TestMinApp.

Ambos proyectos se pueden llevar a cabo de forma independiente.

4.3. El texto del archivo "UnitTest1.cs". Atributos [TestMethod] y [TestClass]

En el proyecto TestMinApp, el archivo de prueba UnitTest1.cs es de interés principal. Este archivo contiene métodos que probarán las funciones del proyecto MinApp. El proyecto TestMinApp puede contener cualquier número de archivos que contengan pruebas (por ejemplo, UnitTest2.cs, UnitTest3.cs, etc.).

La lista del archivo UnitTest1.cs generado por MS Visual Studio 2010 es la siguiente:

usando el sistema; utilizando System.Text; utilizando System.Collections.Generic; utilizando System.Linq; utilizando Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestMinApp {/// <summary> /// Descripción resumida de UnitTest1 /// </ summary> [TestClass] clase pública UnitTest1 {public UnitTest1 () {// // TODO: Agregue la lógica del constructor aquí //} privado TestContext testContextInstance; /// <summary> /// Obtiene o establece el contexto de prueba. /// </ summary> public TestContext TestContext {get {return testContextInstance; } establece {testContextInstance = valor; }} #region Atributos de prueba adicionales // puede usar sus pruebas // // Usar ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Use ClassCleanup para ejecutar el código después de que todas las pruebas en una clase hayan ejecutado // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Use TestInitialize para ejecutar el código antes de ejecutar cada prueba // [TestInitialize ()] // public void MyTestInitialize () {} // // Use TestCleanup ) {} // #endregion [TestMethod] public void TestMethod1 () {// // TODO: Agregar la lógica de prueba aquí //}}}

Como se puede ver en el código anterior, el archivo contiene una clase llamada UnitTest1. La clase tiene un método público llamado TestMethod1 (). Antes de implementar el método TestMethod1 (), se coloca el atributo [TestMethod]. Esto significa que debe ingresar el código que probará las funciones del proyecto MinApp en el cuerpo del método.

En la clase, puede ingresar cualquier número de métodos que probarán diferentes funciones de diferentes módulos. Lo principal es que estos métodos están marcados con el atributo [TestMethod].

4.4. Haciendo cambios al texto del módulo UnitTest1. Cambiando el nombre del método de prueba

Puede cambiar los nombres de los métodos y agregar nuevos métodos que estén marcados con el atributo [TestMethod] en el módulo UnitTest1.cs. Dado esto, en el texto del módulo UnitTest1.cs, debe cambiar el nombre del método TestMethod1 () a TestMin ().

Después de realizar los cambios, el texto abreviado del módulo del archivo UnitTest1.cs será:

usando el sistema; utilizando System.Text; utilizando System.Collections.Generic; utilizando System.Linq; utilizando Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestMinApp {/// <summary> /// Descripción resumida de UnitTest1 /// </ summary> [TestClass] clase pública UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: Agregar prueba lógica aquí //}}}

4.5. Conectando el proyecto MinApp al proyecto TestMinApp

Para tener acceso a la función Min () (proyecto MinApp) del proyecto TestMinApp, debe conectar el espacio de nombres en el que se encuentra esta función.

Para hacer esto, en primer lugar, debe llamar al menú contextual del proyecto TestMinApp. Luego, en el menú contextual, debe llamar al comando "Agregar referencia ..." (Figura 5).

 (Figura 5)

La figura 5. Equipo "Add Referencse ..."

Como resultado, se abrirá la ventana Agregar referencia, en la que deberá seleccionar el proyecto MinApp.

La figura 6. Ventana "Añadir referencia". Conectando el proyecto MinApp

Después de las acciones completadas, las funciones del proyecto MinApp estarán disponibles para su uso en el proyecto TestMinApp.

Después de las acciones completadas, las funciones del proyecto MinApp estarán disponibles para su uso en el proyecto TestMinApp

La figura 7. Pestaña Referencias con proyecto MinApp conectado.

4.6. Realizar cambios en el texto del módulo UnitTest1.cs.
4.6.1. Agregar el espacio de nombres MinApp al módulo UnitTest1.cs

En este paso, en el módulo UnitTest1.cs, debe agregar el espacio de nombres de MinApp usando la directiva using:

usando el sistema; utilizando System.Text; utilizando System.Collections.Generic; utilizando System.Linq; utilizando Microsoft.VisualStudio.TestTools.UnitTesting; utilizando MinApp; espacio de nombres TestMinApp {...}

4.6.2. Texto del método TestMin ()

En el texto del método TestMin (), ingrese el siguiente código:

... [TestMethod] public void TestMin () {// // TODO: Agregue la lógica de prueba aquí // int min; min = Programa .Min (3, 4, 5); Hacer valer. Arrequal (2, min); }

4.7. UnitTest1.cs texto del módulo

El texto de todo el módulo UnitTest1.cs es el siguiente:

usando el sistema; utilizando System.Text; utilizando System.Collections.Generic; utilizando System.Linq; utilizando Microsoft.VisualStudio.TestTools.UnitTesting; utilizando MinApp; namespace TestMinApp {/// <summary> /// Descripción resumida de UnitTest1 /// </ summary> [TestClass] clase pública UnitTest1 {public UnitTest1 () {// // TODO: Agregue la lógica del constructor aquí //} privado TestContext testContextInstance; /// <summary> /// Obtiene o establece el contexto de prueba. /// </ summary> public TestContext TestContext {get {return testContextInstance; } establece {testContextInstance = valor; }} #region Atributos de prueba adicionales // puede usar sus pruebas // // Usar ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Use ClassCleanup para ejecutar el código después de que todas las pruebas en una clase hayan ejecutado // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Use TestInitialize para ejecutar el código antes de ejecutar cada prueba // [TestInitialize ()] // public void MyTestInitialize () {} // // Use TestCleanup ) {} // #endregion [TestMethod] public void TestMin () {// // TODO: Agregue la lógica de prueba aquí // int min; min = Programa .Min (3, 4, 5); Hacer valer. Arrequal (2, min); }}}

5. Ejecutar la prueba y comprobar el resultado de la prueba.

En Microsoft Visual Studio 2010, se implementa un menú especial de comandos llamado Prueba para trabajar con pruebas de unidad.

Para ejecutar una prueba de ejecución, seleccione uno de los comandos.

Prueba -> Ejecutar -> Pruebas en el contexto actual

o

Prueba -> Ejecutar -> Todas las pruebas en solución

como se muestra en la Figura 8.

La figura 8. Llame al comando iniciar prueba y ver el resultado.

Después de ejecutar la prueba, el resultado se puede ver en la parte inferior de la ventana Resultados de la prueba. Como se puede ver en la figura, la prueba no se pasa. Esto es lógico, ya que en la función Assert.AreEqual () comparamos los números 2 y 3, que son diferentes. Aquí, el número 2 se introduce especialmente en lugar de 3.

Si en lugar del número 2 ingresa la respuesta correcta, el número 3 (mínimo entre 3, 4, 5), se pasará la prueba (Figura 9). En este caso, el texto del método TestMin () será el siguiente:

... [TestMethod] public void TestMin () {// // TODO: Agregue la lógica de prueba aquí // int min; min = Programa .Min (3, 4, 5); Afirmar .AreEqual (3, min); }

La ventana de resultados se muestra en la Figura 9.

La figura 9. Resultado de la prueba para el caso, si ingresa la respuesta correcta

Ahora podemos concluir que la función Min () para este caso funciona correctamente.

6. El resultado. Interacción entre proyectos.

En este trabajo, se forman dos proyectos en la solución. Un proyecto MinApp contiene la función Min () que desea probar. El segundo proyecto, TestMinApp, contiene métodos de prueba.

En Microsoft Visual Studio 2010, cada proyecto se inicia utilizando diferentes comandos de menú. Por lo tanto, el proyecto MinApp se inicia de manera estándar desde el menú Ejecutar. Y el proyecto TestMinApp se inicia desde el menú de prueba especial.

Temas Relacionados