MoChiwakiブログ

女性エンジニアがゆる~く書く備忘録ブログ 〜だいたいいつもつまづいている〜

spockを使ったテスト!

HttpServletRequestはnewできない

  • コンストラクタがprivateだから
  • nullだったら生成するという形をとっている
  • だから1つしか生成されないようになっている

→ シングルトン
今更理解するしんぐるとんw

でもnewできないとテストの時はちょっと困っちゃう
そこで登場Mockさん!

  MockHttpServletRequest req = new MockHttpServletRequest();
  req.setParameter("name", "value")

※ あ、Springのmockのjarは必要ですー

spockの使えるやつ

  • expected 2こかけちゃうよ!
 assertThat actual, expected.ret 
    assertThat actual.getId(), expected.Id

    || expected
    || [ret: null, Id: CoreMachers.notNullValue()]
    || [ret: "hogeId", Id: CoreMachers.nullValue()]
  • リスト簡単にまわせちゃうよ!
 List.each{
    assertThat it.Id, expected.Id
    }
  • 呼び出し回数テストわかりやすよ!
 1 * sut.method(9)

  sut.method(9)ってメソッド(引数も込)を1回通っているはず!
ってことをテストする

spockもうちょっとやんなきゃわかんないですね…
Javaっぽいねってダメだしされちゃったからなーw

あとはこのあたりを参考にさせていただきました!!!