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
  1. Функции expect и assert

EXPECT_*

EXPECT_EQ(expected, actual): Описание: Проверяет, что значение actual равно ожидаемому значению expected.

int a = 42, b = 42;
EXPECT_EQ(a, b); // Ожидаем, что a == b

EXPECT_NE(expected, actual): Описание: Проверяет, что значение actual не равно ожидаемому значению expected.

// 2. EXPECT_NE(expected, actual):
// Описание: Проверяет, что значение actual не равно ожидаемому значению expected.
int a = 42, b = 42;
EXPECT_NE(a, b + 1); // Ожидаем, что a != (b + 1)

EXPECT_TRUE(expression): Описание: Проверяет, что логическое выражение expression истинно.

// 3. EXPECT_TRUE(expression):
// Описание: Проверяет, что логическое выражение expression истинно.
EXPECT_TRUE(a == b); // Ожидаем, что выражение a == b истинно

EXPECT_FALSE(expression): Описание: Проверяет, что логическое выражение expression ложно.

// 4. EXPECT_FALSE(expression):
// Описание: Проверяет, что логическое выражение expression ложно.
EXPECT_FALSE(a != b); // Ожидаем, что выражение a != b ложно

EXPECT_LT(val1, val2): Описание: Проверяет, что значение val1 < val2.

// 5. EXPECT_LT(val1, val2):
// Описание: Проверяет, что значение val1 меньше значения val2.
int x = 5, y = 10;
EXPECT_LT(x, y); // Ожидаем, что x меньше y

EXPECT_GT(val1, val2): Описание: Проверяет, что значение val1 > val2.

// 6. EXPECT_GT(val1, val2):
// Описание: Проверяет, что значение val1 больше значения val2.
EXPECT_GT(y, x); // Ожидаем, что y больше x

EXPECT_LE(val1, val2): Описание: Проверяет, что значение val1 <= val2.

// 7. EXPECT_LE(val1, val2):
// Описание: Проверяет, что значение val1 меньше или равно значению val2.
EXPECT_LE(x, y); // Ожидаем, что x меньше или равно y

EXPECT_GE(val1, val2): Описание: Проверяет, что значение val1 >= val2.

// 8. EXPECT_GE(val1, val2):
// Описание: Проверяет, что значение val1 больше или равно значению val2.
EXPECT_GE(y, x); // Ожидаем, что y больше или равно x

EXPECT_STREQ(expected, actual): Описание: Проверяет, что логическое выражение expected и actual идентичны.

// 9. EXPECT_STREQ(expected, actual):
// Описание: Проверяет, что строки expected и actual идентичны.
std::string str1 = "hello";
std::string str2 = "Hello";
EXPECT_STREQ(str1.c_str(), str2.c_str()); // Ожидаем, что строки str1 и str2 идентичны

EXPECT_STRNE(expected, actual): Описание: Проверяет, что логическое выражение expected и actual НЕ идентичны.

// 10. EXPECT_STRNE(str1, str2):
// Описание: Проверяет, что строки str1 и str2 не идентичны.
EXPECT_STRNE(str1.c_str(), str2.c_str()); // Ожидаем, что строки str1 и str2 не идентичны

EXPECT_STRCASEEQ(expected, actual): Описание: Проверяет, что логическое выражение expected и actual идентичны БЕЗ учета регистра.

// 11. EXPECT_STRCASEEQ(expected, actual):
// Описание: Проверяет, что строки expected и actual идентичны без учета регистра.
EXPECT_STRCASEEQ("hello", str1.c_str()); // Ожидаем, что строки "hello" и str1 идентичны без учета регистра

EXPECT_STRCASENE(expected, actual): Описание: Проверяет, что логическое выражение expected и actual идентичны БЕЗ учета регистра.

// 12. EXPECT_STRCASENE(str1, str2):
// Описание: Проверяет, что строки str1 и str2 не идентичны без учета регистра.
EXPECT_STRCASENE(str1.c_str(), str2.c_str()); // Ожидаем, что строки str1 и str2 не идентичны без учета регистра

общий код

#include "gtest/gtest.h"

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

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

    // EXPECT_NE - ожидается, что a не равно b + 1, иначе продолжает выполнение теста
    EXPECT_NE(a, b + 1);

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

    // EXPECT_FALSE - ожидается, что выражение a != b ложно, иначе продолжает выполнение теста
    EXPECT_FALSE(a != b);
}

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

    // EXPECT_LT - ожидается, что x меньше y, иначе продолжает выполнение теста
    EXPECT_LT(x, y);

    // EXPECT_GT - ожидается, что y больше x, иначе продолжает выполнение теста
    EXPECT_GT(y, x);

    // EXPECT_LE - ожидается, что x меньше или равно y, иначе продолжает выполнение теста
    EXPECT_LE(x, y);

    // EXPECT_GE - ожидается, что y больше или равно x, иначе продолжает выполнение теста
    EXPECT_GE(y, x);
}

// Пример 3: Проверка для строк
TEST(ExpectExamples, StringComparison) {
    std::string str1 = "Hello";
    std::string str2 = "World";

    // EXPECT_STREQ - ожидается, что строки "Hello" и str1 совпадают, иначе продолжает выполнение теста
    EXPECT_STREQ("Hello", str1.c_str());

    // EXPECT_STRNE - ожидается, что строки str1 и str2 не совпадают, иначе продолжает выполнение теста
    EXPECT_STRNE(str1.c_str(), str2.c_str());

    // EXPECT_STRCASEEQ - ожидается, что строки "hello" и str1 совпадают без учета регистра, иначе продолжает выполнение теста
    EXPECT_STRCASEEQ("hello", str1.c_str());

    // EXPECT_STRCASENE - ожидается, что строки str1 и str2 не совпадают без учета регистра, иначе продолжает выполнение теста
    EXPECT_STRCASENE(str1.c_str(), str2.c_str());
}

// Пример 4: Проверка для контейнеров
TEST(ExpectExamples, ContainerComparison) {
    std::vector<int> vec1 = {1, 2, 3};
    std::vector<int> vec2 = {1, 2, 3};

    // EXPECT_EQ для контейнеров - ожидается, что vec1 и vec2 равны, иначе продолжает выполнение теста
    EXPECT_EQ(vec1, vec2);

    // EXPECT_NE для контейнеров - ожидается, что vec1 и {3, 2, 1} не равны, иначе продолжает выполнение теста
    EXPECT_NE(vec1, std::vector<int>{3, 2, 1});
}

PreviousФункции expect и assertNextПример setUP() TearDown()

Last updated 1 year ago