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

Функции expect и assert

  1. EXPECT_*:

    • Используйте EXPECT_*, если вы хотите, чтобы тест продолжил выполняться даже после неудачи.

    • Если утверждение с EXPECT_* не выполняется, тест сообщит об ошибке, но выполнение теста будет продолжено.

    Пример:

    TEST(ExampleTest, UsingEXPECT) {
        int result = performOperation();
    
        // Продолжение выполнения теста даже при неудаче
        EXPECT_EQ(result, expectedValue);
        // Дополнительные утверждения...
    }
  2. ASSERT_*:

    • Используйте ASSERT_*, если вы хотите, чтобы тест завершился сразу при неудаче.

    • Если утверждение с ASSERT_* не выполняется, тест сообщит об ошибке и выполнение теста завершится.

    Пример:

    TEST(ExampleTest, UsingASSERT) {
        int result = performOperation();
    
        // Завершение выполнения теста при неудаче
        ASSERT_EQ(result, expectedValue);
        // Этот код не выполнится, если предыдущее утверждение неудачно
        // ...
    }

Выбор между EXPECT_* и ASSERT_* зависит от вашей стратегии тестирования. Если ваша цель - собрать как можно больше данных о состоянии вашего кода, используйте EXPECT_*, чтобы увидеть все ошибки в тесте за один запуск. Если вы предпочитаете остановить выполнение теста при первой же ошибке, используйте ASSERT_*.


если ожидание == реальность:

// Пример 1: Проверка равенства
TEST(AssertionsTest, Equality) {
    int a = 42;
    int b = 42;

    // EXPECT_EQ - продолжает выполнение теста даже при неудаче
    EXPECT_EQ(a, b);

    // ASSERT_EQ - завершает выполнение теста при неудаче
    ASSERT_EQ(a, b);
}

если ожидание != реальность:

// Пример 2: Проверка неравенства
TEST(AssertionsTest, Inequality) {
    int x = 5;
    int y = 10;

    // EXPECT_NE - продолжает выполнение теста даже при неудаче
    EXPECT_NE(x, y);

    // ASSERT_NE - завершает выполнение теста при неудаче
    ASSERT_NE(x, y);
}

если

ожидание(какое-то число или что-то такое)

<

реальность(аналогично):

// Пример 3: Проверка отношения "меньше"
TEST(AssertionsTest, LessThan) {
    int p = 3;
    int q = 7;

    // EXPECT_LT - продолжает выполнение теста даже при неудаче
    EXPECT_LT(p, q);

    // ASSERT_LT - завершает выполнение теста при неудаче
    ASSERT_LT(p, q);
}

если

ожидание(какое-то число или что-то такое)

>

реальность(аналогично):

// Пример 4: Проверка отношения "больше"
TEST(AssertionsTest, GreaterThan) {
    int m = 20;
    int n = 15;

    // EXPECT_GT - продолжает выполнение теста даже при неудаче
    EXPECT_GT(m, n);

    // ASSERT_GT - завершает выполнение теста при неудаче
    ASSERT_GT(m, n);
}

если

ожидание(какое-то число или что-то такое)

<=

реальность(аналогично):

// Пример 5: Проверка отношения "меньше или равно"
TEST(AssertionsTest, LessThanOrEqual) {
    int alpha = 10;
    int beta = 10;

    // EXPECT_LE - продолжает выполнение теста даже при неудаче
    EXPECT_LE(alpha, beta);

    // ASSERT_LE - завершает выполнение теста при неудаче
    ASSERT_LE(alpha, beta);
}

если

ожидание(какое-то число или что-то такое)

>=

реальность(аналогично):

// Пример 6: Проверка отношения "больше или равно"
TEST(AssertionsTest, GreaterThanOrEqual) {
    int gamma = 15;
    int delta = 15;

    // EXPECT_GE - продолжает выполнение теста даже при неудаче
    EXPECT_GE(gamma, delta);

    // ASSERT_GE - завершает выполнение теста при неудаче
    ASSERT_GE(gamma, delta);
}

общий пример:

#include "gtest/gtest.h"

// Пример 1: Проверка равенства
TEST(AssertionsTest, Equality) {
    int a = 42;
    int b = 42;

    // EXPECT_EQ - продолжает выполнение теста даже при неудаче
    EXPECT_EQ(a, b);

    // ASSERT_EQ - завершает выполнение теста при неудаче
    ASSERT_EQ(a, b);
}

// Пример 2: Проверка неравенства
TEST(AssertionsTest, Inequality) {
    int x = 5;
    int y = 10;

    // EXPECT_NE - продолжает выполнение теста даже при неудаче
    EXPECT_NE(x, y);

    // ASSERT_NE - завершает выполнение теста при неудаче
    ASSERT_NE(x, y);
}

// Пример 3: Проверка отношения "меньше"
TEST(AssertionsTest, LessThan) {
    int p = 3;
    int q = 7;

    // EXPECT_LT - продолжает выполнение теста даже при неудаче
    EXPECT_LT(p, q);

    // ASSERT_LT - завершает выполнение теста при неудаче
    ASSERT_LT(p, q);
}

// Пример 4: Проверка отношения "больше"
TEST(AssertionsTest, GreaterThan) {
    int m = 20;
    int n = 15;

    // EXPECT_GT - продолжает выполнение теста даже при неудаче
    EXPECT_GT(m, n);

    // ASSERT_GT - завершает выполнение теста при неудаче
    ASSERT_GT(m, n);
}

// Пример 5: Проверка отношения "меньше или равно"
TEST(AssertionsTest, LessThanOrEqual) {
    int alpha = 10;
    int beta = 10;

    // EXPECT_LE - продолжает выполнение теста даже при неудаче
    EXPECT_LE(alpha, beta);

    // ASSERT_LE - завершает выполнение теста при неудаче
    ASSERT_LE(alpha, beta);
}

// Пример 6: Проверка отношения "больше или равно"
TEST(AssertionsTest, GreaterThanOrEqual) {
    int gamma = 15;
    int delta = 15;

    // EXPECT_GE - продолжает выполнение теста даже при неудаче
    EXPECT_GE(gamma, delta);

    // ASSERT_GE - завершает выполнение теста при неудаче
    ASSERT_GE(gamma, delta);
}
PreviousПараметризация примерыNextEXPECT_*

Last updated 1 year ago