코드숨 과제에 대해 다음과 같은 리뷰를 받았다.
사실, 처음에는 리뷰가 무슨 의미인지 이해가 잘 안 됐다. 테스트를 진행하는 거니까 테스트 이름은 ~되어야 한다, ~해야 한다가 맞지 않나?라고 생각했다. 그래서 계속 생각해보다가 BDD를 다시 떠올리니 무슨 말인지 이해가 됐다. BDD는 코드의 행동을 설명하는 테스트 코드를 작성한다. 또한, BDD는 테스트 대상을 주인공으로 설정하여 행동을 설명하는데 적합한 방식이니까 상황으로 설명하면 테스트 대상은 수동적이게 되므로 BDD는 테스트 대상을 주인공으로 능동적이게 작성해야 하는 것이다. 앞으로, BDD를 작성할 때, 어떤 상황이 벌어지는지, 어떤 변화가 일어나는지에 더 주목하여 능동적으로 작성해야겠다.
이러한 리뷰도 받았다.
describe는 설명할 테스트 대상을, context는 테스트 대상이 놓인 상황을, it은 테스트 대상의 행동을 기술한다. 그래서, 테스트 코드를 작성하면서 예를 들어, 버튼을 누를 때 함수를 호출한다, 입력할 때 함수를 호출한다와 같이 때라는 키워드가 붙으면 context로 감싸서 그 안에 it을 작성하는 구조로 작성했다. 그래서 리뷰를 보고 오랫동안 생각해보다가 윤석님의 뜻은 테스트 대상의 상황이 달라질 때(예를 들어, To Do 앱을 테스트한다고 하면, To Do가 있으면 To Do를 출력하고 To Do가 없으면 To Do가 없다는 문구를 출력하는), context를 사용하는 것이지 버튼을 누르고 함수를 호출하는 건 테스트 대상에게 주어진 상황이 달라지는 건 없으니까 context로 감싸주지 않으신다고 하는 것 같다. 애매하다고 생각한다. 예를 들어 버튼을 눌러서 테스트 대상에게 주어진 상황이 바뀌면 어떻게 작성해야 하지? 작성하면서 이런 생각도 든다. 좋은 테스트 코드는 무엇일지 더 끊임없이 고민해봐야겠다.
'TIL' 카테고리의 다른 글
TIL - 20220520 (0) | 2022.05.20 |
---|---|
TIL - 20220519 (0) | 2022.05.19 |
TIL - 20220517 (0) | 2022.05.17 |
TIL - 20220516 (부제: TDD와 BDD(프로게이머 아님 ㅎ)) (0) | 2022.05.16 |
TIL - 20220515 (0) | 2022.05.15 |