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
あとはこのあたりを参考にさせていただきました!!!