mockk

インスタンスのモック

@SpringBootTest
class HogeServiceTest {
  @Autowired
  private lateinit var hogeRepository: HogeRepository
 
  @Autowired
  private lateinit var hogeService: HogeService
 
  @AfterEach
  fun cleanUp() {
    // モックの解除
    unmockkAll()
  }
 
  @Test
  fun testReadHoge() {
    // モックする
    val dummyHoge: Hoge = ...
    mockkObject(hogeRepository)
    every {
      hogeRepository.getHoge(any())
    } returns dummyHoge
 
    hogeService.getHoge("test")
 
    // getHoge() が "test" で呼ばれたか
    verify {
      hogeRepository.getHoge(
        withArg {
          assertThat(it).isEqualTo("test")
        }
      )
    }
  }
}