Page tree
Skip to end of metadata
Go to start of metadata

통합 테스트 케이스

  • 지뢰 찾기 게임 시나리오를 관통하는 테스트가 필요하다는 생각이 든다.

  • 단위 테스트에 집중하다 보니 전체적인 그림을 보는데 한계가 있다.

1 by 1

  • grid의 square가 mine이 아닐 경우 open하면 win
  • open하지 않은 모든 square가 mine일 경우 win

2 by 2

  • mine이 0개인 경우 square  중 하나를 open 하면 win
  • mine이 1개인 경우 mine이 아닌 square를 open 하면 win
  • mine이 1개인 경우 mine squre를 open 하면 lose

3 by 3

  • mine이 2개인 경우

 

스터디 진행 내용

  • 1 by 1에 대한 시나리오를 만들고 테스트할 필요가 있을까?
    • 처음부터 3 by 3 이상으로 할 수도 있겠지만 1 by  1부터 시작하는 것이 작은 것부터 단계적으로 접근할 수 있다.
  • 테스트 하나에서 너무 많은 테스트를 진행하려는 경향이 있다.
  • TDD의 흐름을 따라가는데 어려움을 느낀다. 지속적인 연습이 필요하다.
  • 도메인 지식이 있는 경우 초반 설계가 효과가 있다. 하지만 도메인 지식이 없는 경우 초반에 빠른 삽질이 의미가 있다.
    • 초반 삽질을 통해 대략적인 설계를 잡으면서 구현한 후 이 소스 코드를 버리고 다시 한번 도전해 본다.
  • 현재와 같이 TDD 형식으로 구현하지 않았다면 어떤 모습의 소스 코드가 나왔을까?

설계개선

  • Model(현재 상태)
    • Grid
    • Row
    • Square
  • View.render(Grid grid) : grid의 현재 상태를 전달하면 다양한 View로 출력
  • Controller : View와 interface할 요소들 지정
    • 앞의 Model과 View를 연결해 주는 역할
  • No labels