일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 단위테스트
- 라우팅테이블
- Unit Test
- 인터넷게이트웨이
- mock객체
- IPv4
- axios mock
- javascript unit test
- docker
- 서브넷
- AWS
- JavaScript
- VPC
- axios-mock-adaptor
- 도커
- TypeScript
- TDD
- 리스코프치환원칙
- jest
- test code
- nestjs
- 테스트코드
- jest.fn
- forbetterme
- 의존관계역전원칙
- 미라클모닝
- parameter group
- subnet
- mock함수
- docker commands
- Today
- Total
목록Programming/TDD (9)
My Dream Being Visualized
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간에, 기본적으로 Mock 함수의 기본 생성과 axios mock 함수 생성에 대해서 알아보았다. 이번 시간엔, 지난 시간의 연장이다. https://jestjs.io/docs/mock-functions Mocking Partials 모듈의 특정 작은 단위만 mock 될 수 있고 남은 모듈의 단위들은 실제 실행부를 가질 수 있다. // foo-bar-baz.js export const foo = 'foo'; export const bar = () => 'bar'; export default () => 'baz'; //test.js import defaultExport, {bar, foo} from '../foo-ba..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간에, 기본적으로 Mock 함수를 만드는 방법에 대해서 알아보았다. 이번 시간엔, axios 모듈을 활용한 API 호출 시 Mock 함수를 생성하고 테스트 하는 방법에 대해서 알아볼 예정이다! https://jestjs.io/docs/mock-functions Mocking Modules API 호출을 통해 유저 정보를 주는 클래스가 있으며, axios 모듈을 사용하여 API를 호출하고, 유저의 정보를 담고있는 data를 반환한다고 가정하자. import axios from 'axios'; class Users { static all() { return axios.get('/users.json').then(resp..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간에, Setup and Teardown에 대해서 알아보았다. 이번 시간엔, Mock Functions이라는 주제로 넘어가보겠다. https://jestjs.io/docs/mock-functions Mock Functions Mock functions는 함수의 실제 구현부를 지우고, 함수 호출 및 해당 호출에 전달된 파라미터를 캡쳐하고, new로 인스턴스화 할 때 생성자 함수의 인스턴스를 캡쳐하고, 반환 값의 테스트 시간을 구성할 수 있어 코드간의 연결을 테스트 할 수 있다. 아니 이게 무슨 말이냐면.. Mock 함수(모의 함수=가짜로 만든 함수)는 실제 함수 내에 로직에 해당하는 부분들을 적지 않아도 되며, 함수 ..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간에, Testing Asynchronous Code에 대해서 알아보았다. 이번 시간엔, Setup and Teardown이라는 주제로 넘어가보겠다. https://jestjs.io/docs/setup-teardown Setup and Teardown 테스트가 시작되기 전, 테스트가 다 끝나고 해야 할 작업들이 있을 수도 있다. Jest는 이를 다루기 위한 헬퍼 함수들을 제공한다! Repeating Setup For Many Tests 테스트마다 반복적으로 해야 될 작업이 있다면 beforeEach와 afterEach를 사용하자! 예를들어, 도시 정보를 담고 있는 데이터베이스를 여러번 접근해야 한다고 가정하자. in..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간에, 자주 쓰이는 Matchers에 대해서 알아보았다. 이번 시간엔, Testing Asynchronous Code라는 주제로 넘어가보겠다. https://jestjs.io/docs/asynchronous 비동기 코드 테스트 자바스크립트를 활용하여 비동기로 코드를 실행시키는 건 일반적이다. 비동기로 실행되는 코드가 있다면, Jest는 다음 테스트로 넘어가기 위해 이전 테스트가 끝났을 때를 알아야한다. Jest에서 이러한 부분을 다루기 위한 몇가지 방법이 있다. Callbacks Promises Async/Await 2021년 현 시점에서는, 대부분의 동기/비동기 처리를 Async/Await로 처리하고 있는 것으로 ..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간에, 간단한 예제를 만들어 보았다. 이번 시간엔, Using Matchers라는 주제로 넘어가보겠다. https://jestjs.io/docs/using-matchers Jest는 "matchers"를 쓰는데, 이는 다양한 방법으로 테스트 값을 도출해 내기 위함이다. 자주 사용되는 matchers를 소개해보겠다. https://jestjs.io/docs/expect (다른 리스트들도 볼 수 있다.) Common Matchers 테스트 값을 도출하기에 가장 간단한 방법은, 값의 동일함을 테스트 하는 것이다. test('two plus two is four', () => { expect(2 + 2).toBe(4); }..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간에, Jest를 활용한 단위 테스트 할 준비를 마쳤다. 이번 시간엔, Jest Docs의 예제를 보고 개념을 잡아 보도록 하겠다. https://jestjs.io/docs/getting-started // sum.js라는 파일을 만들고 함수를 선언한다. function sum(a, b) { return a + b; } module.exports = sum; // sum.test.js라는 파일을 만들고 실제 테스트 코드를 넣는다. const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); }); // 테스트..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) 지난 시간엔, TDD가 무엇인지, 장단점이 무엇인지, 어떻게 써야하는지에 대해서 알아보았다. 이번 시간에는 단위 테스트에 대해서 알아볼 것이다. 단위 테스트란? 개발자가 만든 모듈 단위 '내'에서 개별 단위로 나누어 테스트를 하는 방법이다. 그렇기에, 다른 테스트에 의존하지 않아야 한다. (한 마디로, 기능(들)에 대한 가장 작은 단위인 모듈을 쪼개서 테스트하는 방식이다!) 초기 단계에서 테스트를 진행하기 때문에 디버깅 시간을 많이 줄일 수 있다. 왜 단위 테스트를 해야하는가? 프로그램이 방대하여 아래와 같이 테스트를 위한 조건이 까다로울 때 꼭! 필요하다. 시간이 오래 걸린다. 작은 로직만 수정했음에도 불구하고 테스트시간..
※ 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _) TDD를 공부하게 된 계기 TDD(Test Driven Development, 테스트 주도 개발)에 대해서는 동료 개발자들과 토의 중 몇번 들어본 단어였다. 영어를 공부할 때에도, 모르는 단어가 있으면 찾고 이해하기 전까지 그 자리에 서서 절대 움직이지 않았던 것 처럼.. 인터넷에 바로 찾아보았다. 처음 이해한 TDD는 대략 이런 내용이었다. "테스트 코드를 먼저 작성 후, 실제 코드로 옮기는 작업" 그런데 이상했다. "실제로 코드를 짤 때에도 여러가지 상황을 생각한 뒤 테스트를 해보고 실제 코드를 완성시키는데, 당연한 거 아닌가?" 라는 생각이 들었고, 실제로 TDD라는 개발 방식을 어떻게 적용하고 코드를 짜는지 영상을 ..