u-ryo's blog

various information for coding...

Stubbing in Spock

| Comments

Spockでstubbingして methodのcall回数をassertする必要がありまして。 someClass = Spy(SomeClass)でspyにすると、 3 * someClass.targetMethod(_, _)といったようにassert出来るのですが、 そのtargetMethodを呼ぶ大元のmethodのcallは、 then:ではなくwhen:になければならなかった、という話です。

即ち、

1
2
3
4
5
when:
  ...
then:
  someClass.method() == 'answer'
  3 * someClass.targetMethod(_, _)

ではダメで、

1
2
3
4
5
when:
  ans = someClass.method()
then:
  ans == 'answer'
  3 * someClass.targetMethod(_, _)

でないとなりませんでした、と。

あと、 3 * someClass.targetMethod(_, _)の部分には、 変数とか入れられません。即ち、 (3 + n) * someClass.targetMethod(_, _)とかはダメでした。

Comments