Я должен проверить некоторые условия (например, начальное состояние) в нескольких тестовых случаях. Я не могу использовать 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();
}
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
}
}
Других решений пока нет …