unit tests
  • Установка Google Test
    • через VS 2022
  • Что тестировать как тестировать
    • Test Suites
  • Google Test примеры
  • Параметризация примеры
  • Функции expect и assert
    • EXPECT_*
  • Пример setUP() TearDown()
  • Тестирование производительности
  • Профилирование
    • ЦП Аналитика
    • Пример
  • пример тестирование записи в файл
  • 📚Tasks
    • Задание на повторение
    • Задание calculate_average
    • Задание
    • Задание 2
    • Задание 3
    • Задание Интеграционное тестирование
    • Задание 4 треугольник интеграция
    • Задание кошелек
    • Кошелек интеграция
    • Задачи профилирование
    • Задание Task
  • Пример
Powered by GitBook
On this page

Google Test примеры

у Google Test (обычно сокращенно как gtest) есть множество функциональных возможностей для тестирования на языке C++. Вот некоторые ключевые особенности Google Test:

  1. Тестовые фикстуры: Вы можете использовать фикстуры для настройки и очистки тестового окружения перед и после выполнения тестов

    class MyTestFixture : public ::testing::Test {protected:
        void SetUp() override {
            // Настройка тестового окружения
        }
    
        void TearDown() override {
            // Очистка тестового окружения
        }
    };
    
    TEST_F(MyTestFixture, SomeTest) {
        // Ваш тестовый код
    }
  2. Параметризованные тесты: Вы можете параметризовать тесты, чтобы проверить различные наборы входных данных.

    class MyParamTest : public ::testing::TestWithParam<int> {
    };
    
    TEST_P(MyParamTest, SomeTest) {
        int value = GetParam();
        // Ваш тестовый код
    }
    
    INSTANTIATE_TEST_CASE_P(InstantiationName, MyParamTest, ::testing::Values(1, 2, 3));
  3. Утверждения: Google Test предоставляет различные утверждения для проверки ожидаемых результатов.

    codeEXPECT_EQ(expected, actual);
    ASSERT_TRUE(condition);
    ASSERT_FALSE(condition);
    // и многое другое
  4. Моки и шпионы: Google Test включает в себя библиотеку Google Mock для создания мок-объектов и шпионов для тестирования взаимодействия с объектами.

    Пример использования мока для проверки, что метод был вызван определенное количество раз:

    #include "gtest/gtest.h"
    #include "gmock/gmock.h"
    
    class MyMockClass {
    public:
        MOCK_METHOD(void, myMethod, ());
    };
    
    TEST(MyTest, UsesMock) {
        MyMockClass mockObj;
    
        EXPECT_CALL(mockObj, myMethod())
            .Times(2);  // Ожидаем, что метод будет вызван дважды
    
        // Вызываем метод дважды
        mockObj.myMethod();
        mockObj.myMethod();
    }
  5. Определение тестовых параметров через командную строку: Google Test позволяет вам передавать параметры тестов через командную строку.

    int main(int argc, char **argv) {
        ::testing::InitGoogleTest(&argc, argv);
        return RUN_ALL_TESTS();
    }
  6. Поддержка параллельного выполнения тестов: Вы можете выполнять тесты параллельно, чтобы ускорить процесс тестирования.

    Пример использования параметров командной строки для принятия пользовательских значений в тестах:

    #include "gtest/gtest.h"
    
    int main(int argc, char **argv) {
        ::testing::InitGoogleTest(&argc, argv);
    
        // Обработка пользовательских параметров командной строки
        for (int i = 1; i < argc; ++i) {
            if (std::string(argv[i]) == "--my_param") {
                // Обработка значения параметра
                // Например, передача ваших пользовательских параметров в тесты
            }
        }
    
        return RUN_ALL_TESTS();
    }
  7. Широкие возможности настройки тестового окружения: Google Test предоставляет различные инструменты для настройки тестового окружения и взаимодействия с тестовой системой. Google Test поддерживает параллельное выполнение тестов, и обычно, для этого вам просто нужно указать опцию командной строки --gtest_parallel.

    ./your_test_binary --gtest_parallel

Замечание:

Для использования Google Mock (пункт 4) вам также потребуется библиотека Google Mock. Обычно ее можно получить, скомпилировав ее из исходных кодов вместе с Google Test. Настройте сборку Google Test с поддержкой Google Mock, и затем вы сможете включить gmock/gmock.h в свой код.

Для более подробной информации и примеров использования рекомендуется обращаться к официальной документации Google Test: Google Test Documentation.

PreviousTest SuitesNextПараметризация примеры

Last updated 1 year ago