初めに
テストコードを書くのに【Java × Junit】と【Groovy × Spock】を経験しました。
個人的に【Groovy × Spock】がかなり書きやすかった印象があります。
ですので、まとめます。
whenとthen(そしてsetup)
ブロック |
内容 |
setu |
前提条件を記述します。 |
when |
テスト対象となる動作を記述します。 |
then |
whenの実行結果として、期待される条件を記述します |
expect
ブロック |
内容 |
expect |
whenとthenを合体させたようなものです。 |
cleanup
ブロック |
内容 |
cleanup |
テストの為にsetupでファイルを作成したりした場合、このcleanupブロックで削除します。 例外が発生しようがしまいが、必ず実行されるという点に注意。 |
where
ブロック |
内容 |
where |
データドリブンテストが可能。 |
ブロック |
内容 |
@Unroll |
whereブロックの行数分、それぞれ独立したテストのように繰り返し実行されます。 |
こんな感じで書けます。
test.groovy
@Unroll
def "selectMany動作確認: 従業員名検索:#testCase:取得データ有"() {
given:
def employeeId = null
def employeeName = _employeeName
when:
def dtoList = employeeDao.selectMany(employeeId, employeeName)
then:
dtoList.size() == 2
dtoList[0].each {
assert it.employeeId == "100000000"
assert it.employeeName == "従業員NAME"
}
dtoList[1].each {
assert it.employeeId == "100000001"
assert it.employeeName == "従業員NAME"
}
where:
_employeeName | testCase
"従業員NAME" | "完全一致"
"従業員" | "部分一致"
}
参考
ありがとうございます🙇♂️
https://koji-k.github.io/groovy-tutorial/index.html