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

## 概要

    #define             cut_take_string                     (string)
    #define             cut_take_printf                     (format, ...)
    #define             cut_take_string_array               (strings)
    #define             cut_take_diff                       (from, to)
    #define             cut_append_diff                     (message, from, to)
    #define             cut_inspect_string_array            (strings)
    #define             cut_set_fixture_data_dir            (path, ...)
    #define             cut_build_fixture_data_path         (path, ...)
    #define             cut_get_fixture_data_string         (path, ...)
    #define             cut_remove_path                     (path, ...)

## 説明

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

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

## 詳細

### cut_take_string()

    #define             cut_take_string(string)

文字列の所有権をCutterに渡し、`string`と同じ内容の文字列を返します。

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

### cut_take_printf()

    #define             cut_take_printf(format, ...)

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

`format` : | 整形文字列。`printf()`のドキュメントを見てください。
`...` : | 整形文字列に挿入されるパラメータ。

### cut_take_string_array()

    #define             cut_take_string_array(strings)

文字列の配列（char **）の所有権をCutterに渡し、`strings`と同じ内容の文字列の配列を返します。

`strings` : | Cutterが所有する文字列の配列。

### cut_take_diff()

    #define             cut_take_diff(from, to)

`from`と`to`のdiffを計算します。diffの所有者はCutterです。

`from` : | 元の文字列。
`to` : | 修正された文字列。

### cut_append_diff()

    #define             cut_append_diff(message, from, to)

`from`と`to`の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()

    #define             cut_set_fixture_data_dir(path, ...)

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

`path` : | フィクスチャデータディレクトリのパスの最初の要素。
`...` : | パスの残りの要素。

1.0.2から

### cut_build_fixture_data_path()

    #define             cut_build_fixture_data_path(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` : | 削除するパスの最初の要素。
`...` : | パスの残りの要素。

1.0.2から