더북(TheBook)

다행히도 이 테스트는 이미 통과했다. 표준 테스트 주기는 실패하는 테스트로 시작하지만, 때로는 테스트에 포함되지 않은 유스케이스에 대한 테스트를 추가하고 싶을 수도 있다. 그 테스트가 우연히 작동한다고 해도 미래에는 깨질 수 있기 때문이다.

 

시나리오 액터

먼저 테스트 자체에서 불필요한 세부 정보를 제거한다. 그리고 사용자 상호작용(목록의 마지막 두 지점)에 더 집중하고 싶으므로, 시나리오의 액터를 추상화해 추출하자. 이를 통해 애플리케이션을 호출하는 메서드와 액터 클래스에 대한 단언문을 정의할 수 있다.

interface ScenarioActor{ 
    val name: String
}
 
class ToDoListOwner(override val name: String): ScenarioActor {
    fun canSeeTheList(listName: String, items: List<String>) { 
        val expectedList = createList(listName, items) 
        val list = getToDoList(name, listName)         
            expectThat(list).isEqualTo(expectedList)   
    }

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.