このセクションでは、ファクトリ関数を使用する方法について説明します。ファクトリ関数は構造体やクラスなどの型の特定の値を返却します。そのため、テスト ケースの自動生成およびテスト ケース ウィザードで、ファクトリ関数で設定した有効なオブジェクトを使用できます。
このセクションの内容:
ファクトリ関数とは、CppTest_Factory_ 接頭辞が付く関数 (グローバル、名前空間レベル、static クラス メソッド) のことです。ファクトリ関数は指定の型を返します。1 つの型について複数のファクトリ関数を定義することができます。
C++test では、テスト ケースを生成する際に、ファクトリ関数が定義されている場合はファクトリ関数がその型に対する初期化オプションの 1 つと見なされます。 空ではないパラメーター リストをファクトリ関数が持つ場合、C++test は指定の型のオブジェクトを作成するコンストラクターの引数と同じように、 ファクトリ関数の引数を初期化します。
Type 型に対してファクトリ関数を作成するには、次のシグニチャを使って関数を記述します。
Type CppTest_Factory_<factory_function_name>(<factory_arguments>); |
例:
int CppTest_Factory_generateBooleanInt(bool b) { return b ? 1 : 0; } MyClass* CppTest_Factory_createMyClass(int size, int value) { MyClass* m = new MyClass; m->initialize(size); m->setValue(value); return m; } |
C++test はテスト ケースを生成する際にファクトリ関数の宣言を確認する必要があります。そのため、次の方法でファクトリ関数を記述することを推奨します。
ソース コード エディターを使って、テスト対象のソース ファイルに include ディレクティブを素早く追加することができます。ソース コード エディターで
「ffi」と入力し、Ctrl キーを押しながらスペース キーを押します。ソース コード エディターを使って、ファクトリ関数のソース ファイルにファクトリ関数を素早く追加することができます。
「ffs」と入力し、Ctrl キーを押しながらスペース キーを押します。ソース コード エディターを使って、ファクトリ関数テンプレートを素早く追加することができます。 ソース コード エディターで
「ff」と入力し、Ctrl キーを押しながらスペース キーを押します。
|
自動生成テスト ケースでファクトリ関数を使用するよう C++test を設定するには、次の操作を行います。
テスト対象のコンパイル単位で発見されたファクトリ関数は、 テスト ケース ウィザードでテスト ケースを作成する場合にも使用できます。この場合、ファクトリ関数は指定の型の初期化メソッドとして表示されます。
C++test で使用するよう構成したデータ ソースはファクトリ関数で使用できます (「データ ソースを使用したテスト ケースのパラメータライゼーション」)。C++test のデータ ソース API を使ってデータ ソースの値にアクセスできます。
例:
MyClass CppTest_Factory_getMyClassObjectFromDS (void) { MyClass obj; if (CPPTEST_DS_HAS_COLUMN("MyClass.int")) { obj.initialize(CPPTEST_DS_GET_INTEGER("MyClass.int")); } else { // Data Source not available in this test case obj.initialize(0); } |