コンストラクタのパラメータ化
35
class ToDoItemRepository() {
val api = ToDoItemApi()
fun save(toDoItem :ToDoItem) {
api.save(toDoItem)
}
}
@Test
fun test() {
val repository = ToDoItemRepository()
save(ToDoItem("walking"))
}
APIへの送信が行われてしまう
Slide 36
Slide 36 text
コンストラクタのパラメータ化
36
class ToDoItemRepository(val api: ToDoItemApi) {
fun save(toDoItem: ToDoItem) {
api.save(toDoItem)
}
}
@Test
fun test() {
val mockApi = mock(ToDoItemApi::class.java)
val repository = ToDoItemRepository(mockApi)
save(ToDoItem("walking"))
verify(mockApi).save(ToDoItem("walking"))
}
モックオブジェクトをコンストラクタに渡すこ
とでAPIの通信が行われない
かつ与えた値をverifyで検証可能になる