Mockito でメソッドの呼び出し回数のテストをする
こんにちは、 @kz_morita です。
Mockito で メソッドが呼ばれるかどうか、何回呼ばれるかをテストするコードを書いたのでメモです。
Mockito | github mockito.org Mockito document Test したい処理 今回は以下のようなメソッドをテストしたいとします。
class ItemService(itemRepository: ItemRepository) { def getItems(user: User): Seq[Item] = { if (user.isLoggedIn) { itemRepository.getUserItems(user.id) } else { itemRepository.getAllItems() } } } 仮ですが、ユーザークラスを渡して Item のリストを取得するといったシチュエーションです。ログイン済みであればそのユーザーに関連するアイテムを取得し、未ログインであれば全アイテムを取得するといった内容です。
mock しつつテストを書く まずは必要そうなメソッドやクラスを mock します。
// ItemRepository を Mock val itemRepository: ItemRepository = mock[ItemRepository] // getAllItems, getUserItems の戻り値を設定. 両方とも空リストを返すとする when(itemRepository.getAllItems()).thenReturn(Nil) when(itemRepository.getUserItems(anyInt())).thenReturn(Nil) val itemService = new ItemService(itemRepository) when で実際のメソッドをmock します。