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

     

    시나리오 액터

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

    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)   
        }
    
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.