0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Groovy × Spock の各役割

Last updated at Posted at 2023-03-29

初めに

テストコードを書くのに【Java × Junit】と【Groovy × Spock】を経験しました。
個人的に【Groovy × Spock】がかなり書きやすかった印象があります。
ですので、まとめます。

whenとthen(そしてsetup)

ブロック  内容
setu  前提条件を記述します。
when  テスト対象となる動作を記述します。
then whenの実行結果として、期待される条件を記述します  

expect

ブロック  内容 
expect  whenとthenを合体させたようなものです。

cleanup

ブロック  内容 
cleanup  テストの為にsetupでファイルを作成したりした場合、このcleanupブロックで削除します。
例外が発生しようがしまいが、必ず実行されるという点に注意。

where

ブロック  内容 
where  データドリブンテストが可能。

@Unroll

ブロック  内容 
@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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?