Как проверить одно и то же состояние в нескольких тестовых примерах Catch2

Я должен проверить некоторые условия (например, начальное состояние) в нескольких тестовых случаях. Я не могу использовать CHECK в функции, и я хотел бы заменить текущий макрос, если это возможно.

#include "catch.hpp"
#define CHECK_INITIAL_STATE() \
CHECK(first_condition); \
CHECK(second_condition);

TEST_CASE("first_test") {
CHECK_INITIAL_STATE();
// do something
// restore state
CHECK_INITIAL_STATE();
}

2

Решение

Catch2 поставляется с этой встроенной функцией очень элегантно:

TEST_CASE("first_test") {
CHECK(first_condition);
CHECK(second_condition);

SECTION("do something 1") {
// this test is executed after the code outside of the section
}
SECTION("do something 2") {
// this test is executed after the code outside of the section
// but without executing the previous section
}
}
2

Другие решения

Других решений пока нет …