setUp 関数と tearDown 関数を使用して、テストのセットアップとクリーンアップを実行できます。setUp 関数と tearDown 関数は、それぞれ各テストの前と後に呼び出されます。
テスト スイート全体に対して (各テスト スイートの前後に呼び出される) セットアップまたはクリーンアップを実行するには、カスタムのセットアップ/クリーンアップ関数を定義し、次のマクロを使って登録します。
CPPTEST_TEST_SUITE_SETUP(setup_function_name) CPPTEST_TEST_SUITE_TEARDOWN(cleanup_function_name)
この登録は、テスト スイートの宣言セクション内に (最初のテスト ケースの登録の前に) 追加するべきです。
class MyTestSuite : public CppTest_TestSuite { public: CPPTEST_TEST_SUITE(MyTestSuite); CPPTEST_TEST_SUITE_SETUP(myTestSuiteSetUp); CPPTEST_TEST_SUITE_TEARDOWN(myTestSuiteTearDown); CPPTEST_TEST(test1); CPPTEST_TEST(test2); CPPTEST_TEST_SUITE_END(); void setUp(); void tearDown(); static void myTestSuiteSetUp(); static void myTestSuiteTearDown(); void test1(); void test2(); }; void MyTestSuite::myTestSuiteSetUp() { // Test suite setup } void MyTestSuite::myTestSuiteTearDown() { // Test suite cleanup }
注意
- テスト スイートのセットアップ/クリーンアップ関数はパラメーターを取りません。
- C++ テスト スイートのセットアップ/クリーンアップ関数に対して静的ストレージ クラスの指定子を使用することを推奨します。
- コンストラクター/デストラクターをテスト スイートに追加して setup/teardown のコードを加えることは推奨しません。なぜなら、テスト スイートは何度もインスタンス生成されることもあり、その場合、テスト ケースのサブセットが毎回実行されます。テスト スイートのインスタンスのたびに 1 つ呼び出されることさえあります。そのため、「テスト スイート中のテストが実行される前に一度だけコンストラクターが呼び出される」あるいは「すべてのテストが完了した後に対応してデストラクターが呼び出される」という推測は正しくありません。