본문 바로가기

---- Contents ----164

(unit test) A note on testing object equality 우리는 다음과 같이 두 배열, [1, 2, 3] === [1, 2, 3]을 비교할 수 없다는 것을 압니다. 각 배열에 해당하는 내용을 비교하는 것이 아니라 각 배열에 할당된 메모리 주소를 비교하기 때문입니다. 아래와 같은 방식으로, 간단한 값인 숫자와 문자열로만 이루어진 배열이라는 가정하에 두 배열을 비교해주는 함수를 작성할 수 있습니다 (예를 들어, object가 들어있거나 또 다른 배열이 들어있는 배열은 아니라는 말입니다). 이러한 간단한 값을 Primitive type은 scalar type 이라고 부른다는 것 기억하고 있지요? function assertArraysEqual(actual, expected, testName) { var areEqualValues = actual.every(funct.. 2020. 1. 15.
(unit test) Note: Your tests go outside the code that you're testing 테스트할 코드는 절대 테스트를 진행하는 코드 안에 넣으시면 안 됩니다. 각 테스트는 각 함수를 "블랙 박스"처럼 다뤄야 합니다. 각 테스트는 단순히 input 값을 제공하고 assertion과 expectation만을 output 값으로 반환하는 역할을 하는 것입니다. 아래는 좋지 않은 예입니다: function decorateClassListWithAges(classList) { var classListWithAges = classList.map(function(student) { return {'name': student, 'age': getRandomIntInclusive(10, 15)} }); var checkAge = assertRange(classListWithAges[0].age, 10, 1.. 2020. 1. 15.
How do I decide what to test? (unit test) 아래 square 함수에 대한 더 구체적인 assertion을 한번 살펴봅시다: -5가 input 값일 때, 25가 output 값으로 반환한다. 0이 input 값일 때, 0이 output 값으로 반환한다. 5가 input 값일 때, 25가 output 값으로 반환한다. 0.25가 input 값일 때, 0.0625가 output 값으로 반환한다. 위 assertion들이 잘 작성되었다고 느껴졌을 것입니다. 왜 그렇게 느껴졌을까요? 물론, 위 assertion들은 그냥 작성된 것이 아닙니다. 잘 만들어졌는지 여부를 확인하기 위해 square(제곱)의 특징을 한번 살펴봅시다: 음수를 제곱하면 양수가 된다. 0을 제곱하면 0이된다. 숫자의 제곱은 그 숫자 자신을 곱하는 것이다. 분수를 곱하면 그 숫자는 더 .. 2020. 1. 15.