En este tema se describe el proceso paso a paso de crear la prueba de unidad más sencilla en Microsoft Visual Studio 2010 (C#) para la aplicación de consola. Con este ejemplo, puede aprender a crear sus propias pruebas unitarias. El ejemplo también muestra cómo usar la clase Assert para realizar pruebas.

Contenido

  • Tarea
  • Instrucciones
    • 1. Cree una aplicación con la plantilla de aplicación de consola
    • 2. Preparación del texto del Programa.módulo cs
      • 2.1. Añadiendo la función Min ()
      • 2.2. Hacer pública la clase del Programa
    • 3. Listado del programa bajo prueba
    • 4. Creación de una prueba
      • 4.1. Adición de un nuevo proyecto a la solución
      • 4.2. Estructura de la solución
      • 4.3. Código de programa de » UnitTest1.archivo cs». Atributos y
      • 4.4. Hacer cambios en las unidades de texto1.módulo cs. Cambio del nombre del método de ensayo
      • 4.5. Conexión del proyecto MinApp al proyecto TestMinApp
      • 4.6. Modificación de las UnidAdes1.texto del módulo cs
        • 4.6.1. Añadir el espacio de nombres de MinApp a UnitTest1.cs
        • 4.6.2. Texto del método TestMin()
      • 4.7. El texto de la Unidad1.módulo cs
    • 5. Ejecute la prueba y verifique el resultado de la prueba
    • 6. Resultado. Interacción entre proyectos
  • Temas relacionados

Buscar en otros sitios web:

Tarea

Para una aplicación de tipo de consola, desarrolle una prueba de unidad que pruebe la función Min (). Para la función Min (), establezca el método de prueba TestMin (). Pruebe el resultado de las funciones.

Instrucciones

1. Cree una aplicación con la plantilla de aplicación de consola

Ejecute MS Visual Studio 2010. Para crear un proyecto con la plantilla de aplicación de consola, debe llamar a la siguiente secuencia de comandos:

File -> New -> Project...

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

 C#. Formularios de Windows. La ventana "Nuevo proyecto". Seleccionar la "Aplicación de consola"

Gráfico 1 La ventana «Nuevo proyecto». Seleccionar la «Aplicación de consola»

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

2.1. Al agregar la función Min ()

En el cuerpo de la clase Program, debe agregar el texto de la función Min (). La función se declara como pública y estática. El texto de la función Min ()

C#. La ventana de MS Visual Studio, el módulo "Programa".cs"

Gráfico 2 La ventana de MS Visual Studio, el módulo «Programa».cs»

2.2. Hacer pública la clase de programa

Para acceder a la función Min() de la clase de programa, necesita hacer pública esta clase. Para hacer esto, antes de la declaración de clase, debe establecer la palabra clave pública.

...namespace MinApp{ public class Program { // методы класса // ... }}...

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

3. Listado del programa bajo prueba

En este momento el código del programa bajo prueba es el siguiente:

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

Debido a que este programa se probará desde otro módulo de pruebas, entonces en la función Main (), no necesita escribir nada más. Dado que, de acuerdo con la condición de la tarea, debe probar el funcionamiento de la función Min (). Y esto ya se hará desde el módulo de pruebas. Por el momento, nuestro programa está listo para pruebas.

4. Creación de una prueba

La prueba se crea en un proyecto independiente de la Solución. El programa que está probando no lo sabe. El programa de prueba que pondrá a prueba llama 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. Adición de un nuevo proyecto a la solución

Para esta solución, se agrega un nuevo proyecto con el comando

File->Add->New Project...

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

 C#. Aplicación Windows Forms. La ventana para crear un proyecto de tipo Proyecto de prueba

Figura 3. La ventana para crear un proyecto de tipo Proyecto de prueba

En la ventana debe seleccionar el grupo de plantillas

Visual C# -> Test

De las plantillas mostradas, se selecciona la plantilla de proyecto «Proyecto de prueba». El campo «Nombre» indica el nombre del proyecto que probará nuestro programa. Debe configurar, por ejemplo, TestMinApp. El proyecto se encuentra en una carpeta separada «E:\Test\MinApp».

 C#. La " Unidad1.archivo cs". La ventana Explorador de soluciones con los proyectos TestMinApp y MinApp muestra

Figura 4. La » Unidad1.archivo cs». La ventana del Explorador de soluciones con los proyectos TestMinApp y MinApp mostrados

4.2. Estructura de la solución

Como puede ver en la Figura 4, el Explorador de soluciones muestra la estructura de elementos de la solución, que contiene dos proyectos:

  • el proyecto MinApp. Este es un proyecto creado usando la plantilla «Aplicación de consola» con la función Min() a probar;
  • el proyecto TestMinApp. Este proyecto está diseñado para probar las funciones del proyecto MinApp. El código de programa que prueba la función Min() se agregará al archivo de proyecto UnitTest1 del proyecto TestMinApp.

Ambos proyectos pueden ejecutarse de forma independiente.

4.3. Código de programa de » UnitTest1.archivo cs». Atributos y

En el proyecto TestMinApp, el UnitTest1.el archivo de prueba cs es de interés primario. 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, Unidad3.cs, etc.).

Código de programa de » UnitTest1.el archivo cs», generado por MS Visual Studio 2010, es el siguiente:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMethod1() { // // TODO: Add test logic here // } }}

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

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 se notaron por el atributo .

4.4. Hacer cambios en las unidades de texto1.módulo cs. Cambiar 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 en la Unidad1.módulo cs. Con esto en mente, en UnidAdes1.cs, el método TestMethod1() debe renombrarse a TestMin().

Después de realizar los cambios, el texto abreviado de UnitTest1.el módulo de archivos cs se verá como:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { ... public void TestMin() { // // TODO: Add test logic here // } }}

4.5. Conexión del proyecto MinApp al proyecto TestMinApp

Para acceder a la función Min () (el proyecto MinApp) desde el proyecto TestMinApp, debe montar el espacio de nombres en el que se declara esta función.

Para hacer esto, primero debe llamar al menú contextual del proyecto TestMinApp. Luego, en el menú contextual, debe llamar al comando «Agregar referencia Add» (Figura 5).

 C#. Creación de pruebas unitarias. El " Añadir referencia..."comando

Figura 5. El comando «Agregar referencia

Como resultado, se abre la ventana «Agregar referencia», en la que selecciona el proyecto de MinApp.

 C#. Prueba de unidad creando La ventana "Agregar Referencia". Conexión de proyecto MinApp

Figura 6. La ventana «Añadir referencia». Conexión del proyecto MinApp

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

 C#. Aplicación Windows Forms. La pestaña "Referencias" con el proyecto MinApp conectado

Figura 7. La pestaña «Referencias» con el proyecto de MinApp conectado

4.6. Modificación de las UnidAdes1.texto del módulo cs
4.6.1. Añadir el espacio de nombres de MinApp a UnitTest1.cs

En este paso, debe agregar el espacio de nombres de MinApp a UnitTest1.cs que utiliza la directiva «usar»:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ ...}

4.6.2. Texto del método TestMin ()

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

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min);}...

4.7. El texto de la Unidad1.módulo cs

El texto de todas las unidades 1.el módulo cs es el siguiente:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMin() { // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min); } }}

5. Ejecute la prueba y compruebe el resultado de la prueba

En Microsoft Visual Studio 2010 para las pruebas unitarias, se implementa un menú especial «Prueba».

Para ejecutar la prueba, debe seleccionar uno de los comandos

Test -> Run -> Tests in Current Context

o

Test -> Run -> All Tests in Solution

como se muestra en la Figura 8.

 C#. Creación de pruebas unitarias. Llamar al comando test y ver el resultado

Figura 8. Llamar al comando de prueba y ver el resultado

Después de iniciar la prueba, el resultado se puede ver a la izquierda en la ventana del Explorador de pruebas. Como se puede ver en la Figura 8, la prueba no se supera. Esto es lógico, porque en la función Assert.AreEqual() comparamos los números 2 y 3, que son diferentes. Aquí se introduce especialmente el número 2 en lugar del número 3.

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

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(3, min);}...

La ventana de resultados se muestra en la Figura 9.

 C#. Creación de pruebas unitarias. Resultado de la prueba para el caso cuando introduce la respuesta correcta

Figura 9. Resultado de la prueba para el caso cuando ingresa la respuesta correcta

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

6. Resultado. Interacción entre proyectos

En esta tarea, la solución involucra dos proyectos. Un proyecto de MinApp contiene la función Min () a probar. El segundo proyecto TestMinApp contiene métodos de prueba. En Microsoft Visual Studio 2010, cada uno de los proyectos se ejecuta mediante varios comandos de menú. Por lo tanto, el proyecto de MinApp se ejecuta de la manera estándar desde el menú Ejecutar. Y el proyecto TestMinApp se lanza desde un menú especial de «Prueba».

Dejar un comentario

Tu dirección de correo electrónico no será publicada.