テストユーティリティ

テストユーティリティ — テストをもっと簡単に書くためのユーティリティ。

概要

void *              cut_take                            (void *object,
                                                         CutDestroyFunction destroy_function);
#define             cut_take_memory                     (memory)
#define             cut_take_string                     (string)
#define             cut_take_strdup                     (string)
#define             cut_take_strndup                    (string, size)
#define             cut_take_memdup                     (memory, size)
const char *        cut_take_printf                     (const char *format,
                                                         ...);
char **             cut_take_string_array               (char **strings);
#define             cut_take_diff                       (from, to)
#define             cut_take_replace                    (target, pattern, replacement)
#define             cut_append_diff                     (message, from, to)
#define             cut_inspect_string_array            (strings)
void                cut_set_fixture_data_dir            (const char *path,
                                                         ...);
char *              cut_build_fixture_data_path         (const char *path,
                                                         ...);
#define             cut_get_fixture_data_string         (path, ...)
#define             cut_remove_path                     (path, ...)
cut_boolean         cut_equal_string                    (const char *string1,
                                                         const char *string2);
cut_boolean         cut_equal_double                    (double double1,
                                                         double double2,
                                                         double error);

説明

テストを書くためには、テスト環境を前処理・後処理するコードや、検証する結果を準備するコードなどたくさんのコードを書く必要があります。Cutterはもっと簡単にテストを書くためにユーティリティを提供します。

このユーティリティはGLibサポート無しでも使えます。

詳細

cut_take ()

void *              cut_take                            (void *object,
                                                         CutDestroyFunction destroy_function);

オブジェクトの所有権をCutterに渡し、オブジェクト自身を返します。objectdestroy_funcを用いて破棄されます。

object :

Cutterが所有権をもつことになるオブジェクト。

destroy_function :

オブジェクト用の破棄関数。

戻り値 :

Cutterが所有するオブジェクト。解放しないで下さい。

1.0.5から


cut_take_memory()

#define             cut_take_memory(memory)

メモリの所有権をCutterに渡し、メモリ自身を返します。memoryfree()で破棄されます。

memory :

Cutterが所有権を持つことになるメモリ。(void *)

1.0.5から


cut_take_string()

#define             cut_take_string(string)

文字列の所有権をCutterに渡し、文字列それ自身を返します。

string :

Cutterが所有権も持つことになる文字列。

cut_take_strdup()

#define             cut_take_strdup(string)

Duplicates the string, passes ownership of the duplicated string to Cutter and returns the duplicated string.

string :

複製される文字列。(const char *)

1.0.5から


cut_take_strndup()

#define             cut_take_strndup(string, size)

文字列の先頭sizeバイトを複製し、その所有権ををCutterに渡し、複製された文字列を返します。複製された文字列は常にNULL終端しています。

string :

複製される文字列。(const char *)

size :

複製するバイト数。(size_t)

1.0.5から


cut_take_memdup()

#define             cut_take_memdup(memory, size)

メモリのsizeバイトを複製し、その所有権をCutterに渡し、複製されたメモリを返します。

memory :

複製されるメモリ。(void *)

size :

複製するバイト数。(size_t)

1.0.5から


cut_take_printf ()

const char *        cut_take_printf                     (const char *format,
                                                         ...);

printf()のように文字列を整形しますが、整形された文字列はCutterが所有します。

format :

整形文字列。printf()のドキュメントを見てください。

... :

整形文字列に挿入されるパラメータ。

戻り値 :

Cutterが所有する整形された文字列。解放しないで下さい。

cut_take_string_array ()

char **             cut_take_string_array               (char **strings);

配列の所有権をCutterに渡し、stringsそれ自身を返します。

strings :

Cutterが所有権も持つことになる文字列の配列。

戻り値 :

Cutterが所有する文字列の配列。解放しないで下さい。

cut_take_diff()

#define             cut_take_diff(from, to)

fromtoのdiffを計算します。diffの所有者はCutterです。

from :

元の文字列。

to :

修正された文字列。

cut_take_replace()

#define             cut_take_replace(target, pattern, replacement)

target文字列中で、patternにマッチする部分をreplacementで置き換えます。

target :

置換対象の文字列。

pattern :

正規表現パターン。(文字列で指定)

replacement :

マッチした部分を置き換える文字列。

1.0.6から


cut_append_diff()

#define             cut_append_diff(message, from, to)

fromtoのdiffを計算し、そのdiffをmessageに追加します。戻り値の文字列の所有者はCutterです。

message :

diffが追加される文字列。

from :

元の文字列。

to :

修正された文字列。

1.0.3から


cut_inspect_string_array()

#define             cut_inspect_string_array(strings)

stringsを人が読みやすい文字列に整形します。整形された文字列の所有者はCutterです。

strings :

対象となる文字列の配列。

cut_set_fixture_data_dir ()

void                cut_set_fixture_data_dir            (const char *path,
                                                         ...);

cut_get_fixture_data_string()などで使われるフィクスチャデータのディレクトリを指定します。

path :

フィクスチャデータディレクトリのパスの最初の要素。

... :

パスの残りの要素。

1.0.2から


cut_build_fixture_data_path ()

char *              cut_build_fixture_data_path         (const char *path,
                                                         ...);

フィクスチャデータへのパスを生成します。もし、pathが相対パスなら、パスはcut_set_fixture_data_dir()で指定したディレクトリか、現在のディレクトリからの相対パスとして処理されます。

path :

フィクスチャデータのパスの最初の要素。

... :

パスの残りの要素。

戻り値 :

フィクスチャデータのパス。返された文字列が必要なくなったときは開放してください。

1.0.2から


cut_get_fixture_data_string()

#define             cut_get_fixture_data_string(path, ...)

"path/..."にあるフィクスチャデータを読み込み、文字列として返します。文字列はCutterが所持します。cut_build_fixture_data_path()の説明にはフィクスチャデータのパスがどのように決定されるかが書かれています。

path :

フィクスチャデータのパスの最初の要素。

... :

パスの残りの要素。

1.0.2から


cut_remove_path()

#define             cut_remove_path(path, ...)

pathと、その下にあるパスを再帰的に削除します。いかなるエラーも報告しません。

path :

削除するパスの最初の要素。

... :

パスの残りの要素。NULL終端。

1.0.2から


cut_equal_string ()

cut_boolean         cut_equal_string                    (const char *string1,
                                                         const char *string2);

string1string2を比較します。string1あるいはstring2、または両方がNULLでもかまいません。

string1 :

文字列。

string2 :

文字列。

戻り値 :

string1string2が両方NULL、あるいは同じ内容の場合はCUT_TRUE、そうでない場合はCUT_FALSE

1.0.5から


cut_equal_double ()

cut_boolean         cut_equal_double                    (double double1,
                                                         double double2,
                                                         double error);

double1double2を誤差範囲errorで比較します。

double1 :

浮動小数点値。

double2 :

浮動小数点値。

error :

誤差範囲を示す浮動小数点数。

戻り値 :

|double1 - double2| <= errorならCUT_TRUE、そうでなければCUT_FALSE

1.0.5から