Test를 위한 모듈 'assert'

2019. 11. 28. 17:15·Web/Nodejs

 

1. 필요성

샘숭 SDS Software Architecture가

TDD(Test Driven Development)를 한다고 하셨다.

원하는 테스트 케이스를 미리 만들어두고

그에 맞게 개발하는 것이 날코딩하고 디버깅하느라 날밤까는 것 보다 훨씬 효율적이라는 것이다.

Software Engineering 수업을 수강한 학부생으로서 날코딩이 얼마나 구데기짓인지 조금은 알게되었기에..

 

2. assert Module

내부를 들여다보자.

1번째 parameter가 'Value', 2번째가 message (string) 3번째가 Error Message이다. 

정말 많은 Property 로구만..

이 많은 함수를 외운다고?

3. 푸념

갑자기 왠 푸념이냐지만

 

C, C++위주로 디자인 문서나 플로우차트를 그려보기도 하고

메모리 맵도 그려보면서 공부하다가

이런 스크립트 언어의 API를 활용하려니까 맨붕온다.

 

그동안 고집했던

Interface, Input, Output Parameter, Function 으로 나누고

하나하나 파라미터를 설명하는 방식으로 정리하는건 미친짓인거 같다.

외우려고 하는것은 더더욱..

그저 자주 쓰면서 익히는게 답이다.

 

그리고!!

질좋은 공식 API Document

MDN, Node.js API 참조하는 습관을 들이자.

 

참조:

https://nodejs.org/docs/latest-v10.x/api/assert.html#assert_assert_notstrictequal_actual_expected_message

 

Assert | Node.js v10.17.0 Documentation

Assert# The assert module provides a simple set of assertion tests that can be used to test invariants. A strict and a legacy mode exist, while it is recommended to only use strict mode. For more information about the used equality comparisons see MDN's gu

nodejs.org

 

 

3. 예제

함수 설명: 

expected (getFibo(10)) 값과 '34'를 비교(===)하여 

옳지 않으면 Error Message 'Wrong Fibonacci Caculation!' 발생.

 

4. 실행결과

Assertion Error 발생

 

[결과 분석]

actual 값은 정수 34

expected 값은 '34' (string) 이기 때문에 data type이 다르다.

34 === '34' // 결과: false

 

피보나치 수열의 10번째 수는 34가 맞으나

==과 ===의 차이를 모르겠다면?

다음 포스팅을 참고

https://m-falcon.tistory.com/87?category=729888

 

Test에 유용한 모듈이므로 정리해두자~

이 외에도 Mocha, Vows 같은 Test를 위한 Module이 있다.

 

저작자표시 (새창열림)

'Web > Nodejs' 카테고리의 다른 글

express & connect  (0) 2019.12.06
Nodejs Module 'http'  (0) 2019.12.01
node.js global 'exports'  (0) 2019.11.30
module과 export  (0) 2019.11.16
Node.js 'Event'  (0) 2019.11.14
'Web/Nodejs' 카테고리의 다른 글
  • Nodejs Module 'http'
  • node.js global 'exports'
  • module과 export
  • Node.js 'Event'
M_Falcon
M_Falcon
  • M_Falcon
    Falcon
    M_Falcon
  • 전체
    오늘
    어제
    • 분류 전체보기 (432)
      • Web (16)
        • Nodejs (14)
        • Javascript (23)
        • FrontEnd (4)
      • DataBase (39)
        • Fundamental (1)
        • Redis (4)
        • PostgreSQL (10)
        • NoSQL (4)
        • MySQL (9)
        • MSSQL (3)
        • Error (4)
      • Algorithm (79)
        • Algorithm (문제풀이) (56)
        • Algorithm (이론) (23)
      • JVM (65)
        • Spring (13)
        • JPA (5)
        • Kotlin (13)
        • Java (24)
        • Error (7)
      • 기타 (70)
        • Kafka (3)
        • Kubernetes (3)
        • Docker (13)
        • git (19)
        • 잡동사니 (27)
      • 재테크 (11)
        • 세무 (4)
        • 투자 (3)
        • 보험 (0)
      • BlockChain (2)
        • BitCoin (0)
      • C (32)
        • C (10)
        • C++ (17)
        • Error (3)
      • Low Level (8)
        • OS (3)
        • 시스템 보안 (5)
      • 네트워크 (3)
      • LINUX (30)
        • Linux (26)
        • Error (4)
      • 저작권과 스마트폰의 이해 (0)
      • 생각 뭉치 (6)
      • 궁금증 (2)
      • Private (4)
        • 이직 경험 (0)
        • 꿈을 찾아서 (1)
      • Android (21)
        • OS (4)
  • 블로그 메뉴

    • 홈
    • WEB
    • 알고리즘
    • DataBase
    • Linux
    • Mobile
    • C
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    JPA
    Kotlin
    algorithm
    알고리즘
    Spring
    Bitcoin
    linux
    백준
    PostgreSQL
    C++
    android
    프로그래머스
    docker
    ubuntu
    javascript
    database
    java
    kafka
    Programmers
    Git
  • hELLO· Designed By정상우.v4.10.3
M_Falcon
Test를 위한 모듈 'assert'
상단으로

티스토리툴바