본문 바로가기

---- Contents ----164

(unit test) Terminology note: Assertions are not unit tests! Assertion은 주어진 프로그램의 역할이 true 또는 false인지 판단하는 주장으로 이루어진 문장입니다. 먼저 Assertion을 만들기 위해서는 기본적인 구성을 해야합니다. 테스트를 위한 input 값을 준비하고 예상되는 expected 결과값을 준비합니다. Class를 포함하는 경우, 그 class에 대한 예시를 명시해 놓아야 합니다. 또는 assertion 이전에 실행해야 할 다른 상황이 있을 수도 있습니다. 예를 들어, 4가지 순서로 이루어진 코드에서 3번째 순서를 실행시키기 위해서 1번과 2번의 결과값을 준비해야 하는 상황이 있을 수 있습니다. Assertion을 진행하기 전에 하는 모든 세팅도 테스트의 일부라고 볼 수 있습니다. Unit test와 assertion을 일부러 구분해서 소.. 2020. 1. 15.
(Unit test) Assertions && Test frameworks 유닛 테스팅은 Assertions(해결하고자 하는 '주장')이라는 개념으로 이루어져 있습니다. 프로그래머들은 자신이 주장한 특정한 환경에서 주어진 값이 옳은지 여부를 해결하기 위한 Assertion을 내세우게 됩니다. 간단한 예로: function square(x) { return x * x; } 위 함수에 대한 아주 단순한 유닛 테스트는 다음과 같이 적을 수 있습니다: console.log(square(5) === 25); 만약 square라는 함수에 5라는 값을 input 값으로 넣었을 때 output 값이 25가 나오면 true를 반환합니다. 그러나 sqaure라는 함수에 5라는 값을 input 값으로 넣었을 때 output 값이 125가 나오면 false를 반환합니다. Test frameworks.. 2020. 1. 15.
When should I unit test? (unit test) 사소한 함수를 제외한 모든 함수에 유닛 테스트를 해야 합니다. 프로그래밍 인터뷰에서는 시간 제약을 감당하기 위해 원칙을 벗어날 수밖에 없을 때도 있을 것입니다. 그러나 유닛 테스트를 안 하는 것은 아주 안 좋은 습관입니다. 마치 가드레일이 없는 도로에서 고속으로 달리는 차가 낭떠러지에서 떨어지기 쉬운 것처럼, 오히려 테스트를 안 해서 버리게 되는 시간이 더 많게 될 것입니다. 복잡하게 코드를 작성해서 스스로 헷갈리게 되는 경우는 아주 빈번합니다. 반면 각각의 컴포넌트들을 테스트하면 무엇을 만들고 있는지를 바로 이해할 수 있습니다. A warning sign that you should be testing 코드를 작성하는 과정에서 여기저기 console.log 를 찍어 지금 도대체 무슨 일이 일어나고 있는.. 2020. 1. 15.