branch10480’s blog

Topics that I've learned.

iOSアプリ開発自動テストの教科書 を読んでいく 〜 4 〜

テストケース名をわかりやすくする

自動テストのテストケース名はテストが失敗したときに最初に見られるものなので重要。

add() メソッドについてのテストを考えてみる

以下の add() メソッドについてのテストを考えるとする。

func add(x: Int, y: Int) {
    return x + y
}

考えたテストケースが以下。

// [1] 対象メソッド名パターン
testAdd()
// [2] 情報を全て記載したパターン
testAddWhenSet2And3ShouldReturn5()
// [3] 条件と結果を記載したパターン
testAddPositiveNumbersReturnsPositiveNumber()
// [4] 条件を指定したパターン
testAddWithPositiveNumbers()

[1]の場合
何をテストしているのかがわからない。

[2]の場合
テストする値を変えると名前を変えなければならない。

[3]の場合
[2]ほど情報はないが、「何をテストして何が返ってくるべきか」はわかるようになっている。

[4]の場合
期待値の部分がないのでそこはわからない。
しかし、期待値よりもメソッドに記載されている前提条件は変わらないケースが多いので有用。 期待する値はテストコードないに記載するというパターン。


テストケース名をわかりやすくするためならどれを選んでも良い。
ただ、詳細にしすぎると変更コストもかかってしまうのでどの程度にするかはプロジェクトによって判断した方が良い。

> 次回に続く