Leer en inglés

Compartir a través de


Escribir pruebas unitarias para DLL de C/C++ en Visual Studio

Hay varias maneras de probar código de DLL, dependiendo de si dicho código exporta las funciones que quiere probar. Elija una de las siguientes formas:

Las pruebas unitarias solo llaman a funciones que se exportan desde la DLL: agregue un proyecto de prueba independiente, como se describe en Escribir pruebas unitarias para C/C ++. En el proyecto de prueba, agregue una referencia al proyecto DLL.

Vaya al procedimiento Para hacer referencia a funciones exportadas del proyecto DLL.

La DLL se compila como un archivo .exe: agregue un proyecto de prueba independiente. Vincúlelo al archivo objeto de salida.

Vaya al procedimiento Para vincular las pruebas a los archivos de biblioteca u objeto.

Las pruebas unitarias llaman a funciones que no son miembro y que no se exportan desde la DLL, y la DLL se puede compilar como una biblioteca estática: cambie el proyecto de DLL para que se compile en un archivo .lib. Agregue un proyecto de prueba independiente que haga referencia al proyecto en pruebas.

Este método tiene la ventaja de permitir que las pruebas usen miembros no exportados, pero sigue manteniendo las pruebas en un proyecto independiente.

Vaya al procedimiento Para cambiar la DLL a una biblioteca estática.

Las pruebas unitarias deben llamar a funciones que no son miembro y que no se exportan, y el código debe compilarse como una biblioteca de vínculos dinámicos (DLL): agregue pruebas unitarias en el mismo proyecto que el código de producto.

Vaya al procedimiento Para agregar pruebas unitarias en el mismo proyecto.

Crear las pruebas

  • Si las pruebas deben usar miembros que el proyecto DLL no exporta y el proyecto se compila como una biblioteca dinámica, considere la posibilidad de convertirla en una biblioteca estática.

    1. En el Explorador de soluciones, en el menú contextual del proyecto en pruebas, seleccione Propiedades. Se abrirá la ventana de propiedades del proyecto.

    2. Seleccione Propiedades de configuración>General.

    3. Establezca Tipo de configuración en Biblioteca estática (.lib).

    Continúe con el procedimiento Para vincular las pruebas a los archivos de biblioteca u objeto.

Para hacer referencia a funciones de DLL exportadas del proyecto de prueba

  • Si un proyecto DLL exporta funciones que quiere probar, puede agregar una referencia al proyecto de código desde el proyecto de prueba.

    1. Cree un proyecto de prueba unitaria nativo.

      1. En el menú Archivo, elija Nuevo>Proyecto. En el cuadro de diálogo Agregar un proyecto nuevo establezca el valor de Lenguaje en C++ y escriba "prueba" en el cuadro de búsqueda. Después, elija el proyecto de prueba unitaria de tipo nativo.
    2. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de prueba y, a continuación, elija Agregar>Referencia.

    3. Seleccione Proyectos y, después, el proyecto que se va a probar.

      Elija el botón Agregar.

    4. En las propiedades del proyecto de prueba, agregue la ubicación del proyecto en pruebas a los directorios de archivos de inclusión.

      Seleccione Propiedades de configuración>Directorios de VC++>Directorios de archivos de inclusión.

      Elija Editar y agregue el directorio del encabezado del proyecto en pruebas.

    Vaya a Escribir las pruebas unitarias.

Para vincular las pruebas a los archivos biblioteca u objeto

  • Si la DLL no exporta las funciones que quiere probar, puede agregar el archivo de salida .obj o .lib a las dependencias del proyecto de prueba.

    1. Cree un proyecto de prueba unitaria nativo.

      1. En el menú Archivo, elija Nuevo>Proyecto. En el cuadro de diálogo Agregar un proyecto nuevo establezca el valor de Lenguaje en C++ y escriba "prueba" en el cuadro de búsqueda. Después, elija el proyecto de prueba unitaria de tipo nativo.
    2. En el Explorador de soluciones, en el menú contextual del proyecto de prueba, seleccione Propiedades.

    3. Elija Propiedades de configuración>Vinculador>Entrada>Dependencias adicionales.

      Seleccione Editar y agregue los nombres de los archivos .obj o .lib. No utilice nombres de ruta de acceso completa.

    4. Elija Propiedades de configuración>Enlazador>General>Directorios de bibliotecas adicionales.

      Seleccione Editar y agregue la ruta del directorio de los archivos .obj o .lib. La ruta de acceso está normalmente dentro de la carpeta de compilación del proyecto en pruebas.

    5. Seleccione Propiedades de configuración>Directorios de VC++>Directorios de archivos de inclusión.

      Elija Editar y agregue el directorio del encabezado del proyecto en pruebas.

    Vaya a Escribir las pruebas unitarias.

Para agregar pruebas unitarias en el mismo proyecto

  1. Modifique las propiedades del proyecto de código del producto para incluir los encabezados y los archivos de biblioteca que se requieren para pruebas unitarias.

    1. En el Explorador de soluciones, en el menú contextual del proyecto en pruebas, seleccione Propiedades. Se abrirá la ventana de propiedades del proyecto.

    2. Elija Propiedades de configuración>Directorios de VC++ .

    3. Edite los directorios de inclusión y de biblioteca:

      Directorio Propiedad.
      Directorios de archivos de inclusión $(VCInstallDir)Auxiliary\VS\UnitTest\include
      Directorios de archivos de bibliotecas $(VCInstallDir)Auxiliary\VS\UnitTest\lib
  2. Agregue el archivo de prueba unitaria de C++:

    1. Haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones y seleccione Agregar>Nuevo elemento.

    2. En el cuadro de diálogo Agregar nuevo elemento, seleccione Archivo C++ (.cpp), escriba un nombre adecuado para este y elija Agregar.

    Vaya a Escribir las pruebas unitarias.

Escribir las pruebas unitarias

  1. En cada archivo de código de prueba unitaria, agregue un fragmento #include para los encabezados de proyecto en pruebas.

  2. Agregue las clases y los métodos de prueba a los archivos de código de prueba unitaria. Por ejemplo:

    C++
    #include "stdafx.h"
    #include "CppUnitTest.h"
    #include "MyProjectUnderTest.h"
    using namespace Microsoft::VisualStudio::CppUnitTestFramework;
    namespace MyTest
    {
      TEST_CLASS(MyTests)
      {
      public:
          TEST_METHOD(MyTestMethod)
          {
              Assert::AreEqual(MyProject::Multiply(2,3), 6);
          }
      };
    }
    

Ejecutar las pruebas

  1. En el menú Prueba, elija Windows>Explorador de pruebas.

  2. Si no todas las pruebas son visibles en la ventana, compile el proyecto de prueba; para ello, haga clic con el botón derecho en el nodo correspondiente en el Explorador de soluciones y elija Compilar o Recompilar.

  3. En el Explorador de pruebas, elija Ejecutar todas o seleccione las pruebas concretas que quiera ejecutar. Haga clic con el botón derecho en una prueba para ver otras opciones, como la ejecución en modo de depuración con puntos de interrupción habilitados.