[TIL]201001

슬지로운 개발생활·2020년 10월 1일
0

TIL

목록 보기
12/73
post-thumbnail

1. Coplit

  • 반복문
  • 배열 21번 까지

2. Socrative

  • Scope
  • Closer

3. Koans

01_Introduction : 자바스크립트 테스트 작동방식 이해

유닛 테스트(Unit Test)를 작성하여 우리가 작성한 함수가 주어진 입력값에 리턴하는 값과 기대하는 값이 같은지 비교한다.

유닛테스트는 method를 테스트하는 또다른 method이다.
하나의 유닛테스트는 하나의 메서드의 특정 루틴을 검사한다.

유닛테스트를 만드는 이유
버그를 줄이고 코드 퀄리티를 높이기 위해
- 프로그램이 크고, 메모리가 많이들고, 다른 리소스(데이터베이스 등)이 필요한 경우
로컬 환경에서 쉽게 코드를 실행하기 어렵기 때문에
유닛테스트를 만들어 빠르게 자신의 코드가 정상적으로 작동 하는지 확인할 수 있다.
- Despendency(의존성)가 있는 다른 클래스들에서 버그가 나는 것을 방지하기 위해

expect 함수를 사용하여 테스트하는 값과 기대값을 비교했다.

expect(테스트하는값).기대하는조건
expect(isEven(3)).toBeTruthy() => 'isEven(3)'의 결과값은 참인 (truthy)이어야 한다'
expect(1 + 2).toBe(3) => 'sum(1,2)의 결과값은 3이어야(toBe) 한다'

'기대하는조건'에 해당하는 함수를 matcher라고 한다.
Koans에서는 자스민 프레임워크(jasmine framework)에 있는 matcher들을 사용하여 비교했다.

Matcher that we used

  • .toBeTruthy(), .toBeFalsy() : '기대하는 값이 truthy인지 falsy인지 확인하는 함수
  • .toBe() : '테스트하는 값'과 '기대하는 값'이 같은지 확인.
    (reference값 까지 같아야함)
  • .toEqual() : 배열의 요소나 객체의 속성이 서로 같은지 확인.

02_Types(part1)

비교연산자 ('==' & '===' 차이)

'=='연산자

  • 동등 연산자(Equality operator)
  • 두 값의 일치 여부를 느슨하게 검사(loose equality)
  • 실행 중 타입 변환(type coercion)이 일어날 수 있다.

'!='연산자

  • 부등 연산자(Inequality operator)
    //'=='의 느슨함을 보여주는 예시
    expect(0 == false).toBeTruthy();
    expect('' == false).toBeTruthy();
    expect([] == false).toBeTruthy();
    expect(![] == false).toBeTruthy();
    expect([] == ![]).toBeTruthy();
    expect([] == '').toBeTruthy();
    expect([] == 0).toBeTruthy();
    expect([''] == '').toBeTruthy();
    expect([''] == 0).toBeTruthy();
    expect([0] == 0).toBeTruthy();

'==='연산자

  • 엄격한 동치 연산(strict equality)
  • 일치 연산자(Identity operator)

'!=='연산자

  • 불일치 연산자(Nonidentity operator)


03_let, const : let, const에 대해

let

  • block scope를 따른다.
  • 재할당이 가능하다.
  • 재할당이 필요한 경우에 한정해 let키워드 사용. 이때 변수의 스코프는 최대한 좁게 만든다.

Const

  • const는 재할당이 금지 되기 때문에 선언과 동시에 할당이 이루어져야 한다.
  • 상수명을 적절하게 사용하면 가독성과 유지보수성이 오르기 때문에 사용을 추천한다.
  • 객체에 const로 선언하게 되면 객체의 reference를 변경하지 못하지만 property(속성)은 변경이 가능하다.
    그래서 변경이 없을 원시값과 객체에는 재할당이 안되기 때문에 의도치 않은 재할당을 방지하여 보다 안전하다.
    → 기본적으로 변수 선언시 const를 쓰자. 재할당하는 경우가 흔하지 않다. 추후에 꼭 재할당을 해야될 일이 필요하다면 그때 let으로 변경해도 된다.

0개의 댓글