構造体配列を入出力変数に指定して単体テストを行いたいのですが、配列の要素数、メンバ数共に多いと、CSVファイルへの登録にかなりの手間を要することになります。CSVファイルを使用しないで、配列の要素数、メンバ数が多い変数の条件を初期化する方法はありませんか?
よくある質問(FAQ)
構造体配列を入出力変数に指定して単体テストを行いたいのですが、配列の要素数、メンバ数共に多いと、CSVファイルへの登録にかなりの手間を要することになります。CSVファイルを使用しないで、配列の要素数、メンバ数が多い変数の条件を初期化する方法はありませんか?
配列の要素数、メンバ数が多い変数を初期化するには、以下の方法があります。
1.「初期値設定」の機能を使用する方法
1-1.テストデータ(テストケース)毎に変数を初期化する必要がある場合
このケースでは、カバレッジマスターの「初期値設定」機能を利用することで、CSVファイルからテストデータを変数に与える前に、構造体などの変数やメンバーを指定した値で初期化できます。
「モジュールテスト用CSV雛型作成」画面下部にある[初期値...]ボタンをクリックすると、「初期値設定」画面が表示されます。画面上部の[テストデータ毎に初期化する]オプションを有効にすると、各テストケースの実行直前に毎回初期化が行われるようになります。
1-2.テスト開始時に初回のみ変数を初期化する場合
このケースでは、1の「初期値設定」機能において、[テストデータ毎に初期化する]オプションをOFFにして使用してください。このオプションをOFFにすることで、初期化はテスト開始時の最初の1回のみ実行されるようになります。各テストケースの実行ごとに変数の値がリセットされるのを避け、前のケースの状態を引き継いでテストを行いたい場合に有効です。
2.テストドライバを作成する方法
構造体ポインタ変数や配列などのまとまったデータを初期化する場合、テストドライバ側に初期値を代入したダミー変数を定義し、そのアドレスをCSVファイル経由で対象のポインタや配列に渡すという手法があります。
この方法を採用する際は、作成したテストドライバソースをコンパイル・リンクし、テスト環境に組み込む必要があります。
テストごとに値を変える必要がある変数のみをCSVファイルに登録して入力すればよいため、CSV作成にかかる工数を削減することが可能です。