Используйте EXPECT_*, если вы хотите, чтобы тест продолжил выполняться даже после неудачи.
Если утверждение с EXPECT_* не выполняется, тест сообщит об ошибке, но выполнение теста будет продолжено.
Пример:
TEST(ExampleTest, UsingEXPECT) {
int result = performOperation();
// Продолжение выполнения теста даже при неудаче
EXPECT_EQ(result, expectedValue);
// Дополнительные утверждения...
}
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);
}