Marco de prueba GT

¿Qué es Googletest?

  • Es un marco de prueba, es decir, una herramienta de software para escribir y ejecutar pruebas unitarias.
  • Es una biblioteca para escribir pruebas en C++.
  • Se basa en la arquitectura xUnit que es un conjunto de “Frameworks” para la programación y ejecución automatizada de casos de prueba.
  • Prueba de Google

    Conceptos básicos :

          • , ASSERT_LT, ASSERT_GT, ASSERT_GE.
          • EXPECT_WQ, EXPECT_NE, EXPECT_LT, EXPECT_GT, EXPECT_GE.
        Afirmación fatal afirmación no fatal verifica
        ASSERT_TRUE (condición); EXPECT_TRUE (condición); la condición es verdadera
        ASSERT_FALSE (condición); EXPECT_FALSE (condición); la condición es falsa
        ASSERT_STREQ(str1, str2); ESPERAR_STREQ(str1, str2); las dos strings str1 y str2 tienen el mismo contenido
        ASSERT_STRNE(str1, str2); ESPERAR_STRNE(str1, str2); las dos strings str1 y str2 tienen contenido diferente
        ASSERT_STRCASEEQ(str1, str2); ESPERAR_STRCASEEQ(str1, str2); las dos strings str1 y str2 tienen el mismo contenido, ignorando el caso
        ASSERT_STRCASENE(str1, str2); ESPERAR_STRSTRCASENE(str1, str2); las dos strings str1 y str2 tienen contenido diferente, ignorando el caso

        Pruebas simples :

        PRUEBA() :

        • Una macro para definir y nombrar una función de prueba.
        • Use las diversas afirmaciones de Googletest para verificar los valores.
        • Si alguna aserción en la prueba falla (ya sea fatalmente o no), o si la prueba falla, toda la prueba falla. De lo contrario, tiene éxito.
           TEST(TestSuiteName, TestName) {
              ... test body ...
           }

        Accesorios de prueba :

        • Uso de la misma configuración de datos para múltiples pruebas.
        • Derivar una clase de ::testing::Test. Comience su cuerpo con protected:, ya que querremos acceder a los miembros del dispositivo de las subclases.
        • Si es necesario, escriba un constructor predeterminado o SetUp().
        • Si es necesario, escriba un destructor predeterminado o TearDown().
        • Utilice TEST_F(), en lugar de TEST().
        TEST_F(TestFixtureName, TestName) {
           ... test body ...
        }

        Invocación de las pruebas :

        • EJECUTAR_TODAS_PRUEBAS();
          • Devuelve 0: Todas las pruebas son exitosas.
          • Devuelve 1: de lo contrario.

        Ejemplos :

        Una función factorial:

        int factorial(int n)
        {
            // If n < 1;
            return -1;
            
            // Else factorial = n!;
            return factorial;
        }
        TEST(FactorialTest, FactorialOfZeroShouldBeOne)
        {
            ASSERT_EQ(1, factorial(0));
        }
        TEST(FactorialTest, FactorialOfPositiveNos)
        {
            ASSERT_EQ(1, factorial(1));
            ASSERT_EQ(24, factorial(4));
            ASSERT_EQ(120, factorial(5));
        }
        int main(int argc, char **argv)
        {
            testing::InitGoogleTest(&argc, argv);
            return RUN_ALL_TESTS();
        }

        Argumentos de línea de comando :

        • Volcar la salida en formato XML pasando:

        –gtest_output=”xml:informe.xml”

        • Si desea ejecutar varias veces:

        –gtest_repeat=2

        • Depurador invocado en caso de error:

        –gtest_break_on_failure

        • No es necesario ejecutar todas las pruebas todas las veces:

        –gtest_filter=<string de prueba>

        Publicación traducida automáticamente

        Artículo escrito por j_k_gupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

        Deja una respuesta

        Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *