티스토리 뷰

1. Annotation
2. Mock Object
3. Method Stub
4. Spy Object
5. Assert
6. Verify

6. Verify

 

class UnitLocalDataSourceTest {

    lateinit var unitLocalDataSource: UnitLocalDataSource

    val map = mutableMapOf<String, Unit<out Settings>>()
    
    val testUnitId = "testId"
  
    @MockK
    lateinit var unitSettings: UnitSettings

    @MockK
    lateinit var testUnit: Unit<UnitSettings>

    @Test
    fun testGetUnit_found() {
        every { spyMap.get(testUnit.id.toString()) } returns testUnit

        val actual =
            unitLocalDataSource.getUnit(testUnitId)

        assertEquals(testUnit, actual)
        
        // 행위를 올바르게 수행하였는지 검증
        verify {
            spyMap.get(testUnitId)
        }
    }
}

 

객체가 해당 행위를 올바르게 수행하였는지 검증합니다.

메서드 호출 여부, 횟수, 순서, 파라미터를 검증할 수 있습니다.

검증하고자하는 기능의 내부 로직 동작을 검증하는데 활용할 수 있습니다.

Mock 객체만 verify할 수 있으며, 실제 객체의 행위는 Spy 객체로 만들어 verify할 수 있습니다.

 

참고 - Mockito Javadoc

댓글