Как проверить одно и то же состояние в нескольких тестовых примерах 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();
}

1 ответ

Решение

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
    }
}
Другие вопросы по тегам