voidメソッドのspockを使用してパラメーター化されたテストをセットアップする方法がわかりません。これは、リンクリストの簡単なテストケースです。
@Unroll
def "should delete the element #key and set the list size to #listSize"(key, listSize) {
given:
list.insert(6)
list.insert(12)
list.insert(33)
expect:
def deletedKey = list.delete(key)
list.size() == listSize
where:
key || listSize
6 || 2
12 || 2
33 || 2
99 || 3
}
このメソッドdelete()
はvoidメソッドですが、明示的に戻り値を取得していない場合、テストは失敗しています。
これは実際に機能しています:
expect:
def deletedKey = list.delete(key)
list.size() == listSize
これはしませんが:
expect:
list.delete(key)
list.size() == listSize
テストレポートはnullについて不平を言う
Condition not satisfied:
list.delete(key)
| | |
| null 12
com.github.carlomicieli.dst.LinkedList@5c533a2
この状況をどのように管理できますか?削除メソッドが呼び出された後、リストの状態をチェックして削除の結果をテストしたいと思います。
ありがとう、カルロ