본문 바로가기
반응형

분류 전체보기703

[Jest] 감시모드(watch/watchAll) - 변경된 파일이 있는 경우 테스트 자동 실행하기 Jest에는 다양한 옵션이 존재하는데, 정확한 명칭은 Jest CLI 옵션이라고 한다. 다양한 옵션 중에 감시 모드 옵션인 watch/watchAll에 대해 알아보고자 한다. Jest CLI 옵션 사용 방법 watch/watchAll 옵션에 대해 알아보기 전에 우선 Jest CLI 옵션을 사용할 줄 알아야 하니 사용방법에 대해 간단하게 알고 넘어가자. npm 스크립트와 함께 사용 npm test 명령어와 같이 사용하게 되면 npm test와 Jest 인수 사이에 --를 삽입하여 명령 줄 인수를 계속 사용할 수 있다. npm test -- -h npm test -- --watchAll 실제로 -h 헬프 옵션을 사용해보면 다양한 옵션들이 출력되는 것을 볼 수 있는데, 그중에 --watch와 --watchAl.. 2022. 9. 27.
[Jest] 테스트 전(before)/후(after) 처리하기 전(before)/후(after) 처리 테스트를 작성하다 보면 모든 테스트 함수에서 공통적으로 필요한 공통 로직이 필요할 때가 있는데, 그때 전후 처리인 before/after 메서드를 사용할 수 있다. 기본적인 건 [Jest] Jest 기초 문법에서 다뤘었는데, 전후처리에 대해 좀 더 알아보자. beforeEach() / afterEach() const globalDatabase = makeGlobalDatabase(); function cleanUpDatabase(db) { db.cleanUp(); } afterEach(() => { cleanUpDatabase(globalDatabase); }); beforeEach(() => { return globalDatabase.insert({ testDat.. 2022. 9. 27.
[Jest] Jest 기초 문법 Jest 기초 문법 Jest에서는 정말 다양한 메서드들을 제공하고 있는데, 그중에서도 기본적으로 자주 사용하게 될 메서드에 대해서만 알아보고자 한다. 설명을 위해 간단한 예제 코드를 살펴보고 해당 문법들에 대해 알아보자. const sum = require("../sum.js"); describe("simple js function test", () => { let num; beforeEach(() => { num = 1; }); afterEach(() => { num = 0; }); it("num is 1", () => { expect(num).toBe(1); }); test("adds 1 + 2 to equal 3", () => { expect(sum(1, 2)).toBe(3); }); test("a.. 2022. 9. 27.
[Jest] Jest 시작하기 (ft. 설치 및 기본 사용법) Jest란 무엇일까? Jest에 대해 검색을 시작한 순간부터 이 Jest가 어디에 쓰이는지를 대충이나마 알 거라고 생각한다. 나중에는 어떻게 될지 모르겠지만, 요즘 아주 많이 사용되는 Javascript 테스트 프레임워크이다. Jest는 리액트와 마찬가지로 페이스북에서 개발하고 관리하는 자바스크립트 테스트 프레임워크라고 하는데, React뿐만 아니라 Vue, Angular, TypeScript, Node 등 다양한 것들과 함께 사용이 가능하다. 심지어 공식문서 또한 존재해 문서화가 잘되어있어 정보를 얻으며 사용하기에 아주 편리하다고 생각된다. https://jestjs.io/ Jest By ensuring your tests have unique global state, Jest can reliably .. 2022. 9. 27.
[ES6+] structuredClone() - 객체 "깊은" 복사를 도와주는 메서드 javascript 개발을 진행하게 되면 객체를 복사해서 사용하는 경우가 빈번하게 발생하는데, 방법에 따라 흔히들 알고 있는 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)가 존재한다. 이 게시글에서는 깊은 복사를 도와주는 메서드인 structuredClone()에 대해 알아보고자 한다. ▷ 구문 structuredClone(value) structuredClone(value, transferables) value: 복사할 대상인 원본 객체이다. 이는 구조화된 복제가 가능한 모든 유형을 포함한다. transferables: An array of transferable objects in value that will be moved rather than cloned to the retu.. 2022. 9. 26.
[ES6+] 옵셔널 체이닝(optional chaining) 옵셔널 체이닝(optional chaining) 연산자 (?.)을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있다. ▷ 구문 obj?.prop obj?.[expr] arr?.[index] func?.(args) 옵셔널 체이닝 연산자는 결국 참조가 누락될 가능성이 있는 경우 연결된 속성으로 접근할 때 더 짧고 간단한 표현식으로 사용할 수 있다. 즉, '앞'의 평가 대상이 undefined 나 null이면 평가를 멈추고 undefined를 반환한다. 예제를 통해 알아보자. 옵셔널 체이닝이 등장하기 이전 let user = {}; // 주소 정보가 없는 사용자 // 1. 에러 발생 alert(user.address.street); // TypeError: Cannot read prop.. 2022. 9. 23.
[ES6+] nullish 병합 연산자 (??) nullish 병합 연산자는 왼쪽 연산자가 null 또는 undefined일 때 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자이다. 개념은 대충 알겠고 예제를 통해 좀 더 자세히 알아보자. nullish 기본 사용법 let firstName = null; let lastName = undefined; let nickName = "바이올렛"; // null이나 undefined가 아닌 첫 번째 피연산자 console.log(firstName ?? lastName ?? nickName ?? "무명"); // 바이올렛 본문 시작할 때 설명한 것처럼 null이거나 undefined가 아닌 값이 나올 때 해당 값이 출력되는 구조이다. 우리가 흔히 사용하는 논리연산자는 OR을 의미.. 2022. 8. 31.
[HackerRank] The Bomberman Game (Medium) by javascript ▷ 문제 : The Bomberman Game (Medium) The Bomberman Game | HackerRank Determine the effect of Bomberman's rampage. www.hackerrank.com ▷ 해결 날짜 : 2022.08.04 ▷ 소요 시간 : 1시간 20분 ▷ 풀이 과정 : 일단 문제를 보는 순간 풀기 싫게 거부감이 느껴지는 문제이다. 문제의 큰 흐름은 아래와 같다. 초기에 일부 세포에 임의로 폭탄 설치 (0) ( 폭탄이 설치된 상태로 배열이 주어짐 ) 1초 후 침묵 (+1) 1초 후 폭탄이 없는 모든 곳에 폭탄 설치(+1) 1초 후 정확히 3초 전에 설치한 폭탄이 폭발 여기서 인접한 상하좌우 같이 터짐(+1) 계속 3~4 무한 반복 그리고 답안은 몇 초 후.. 2022. 8. 4.
[HackerRank] Organizing Containers of Balls (Medium) by javascript ▷ 문제 : Organizing Containers of Balls (Medium) Organizing Containers of Balls | HackerRank Determine if David can perform some sequence of swap operations such that each container holds one distinct type of ball. www.hackerrank.com ▷ 해결 날짜 : 2022.08.03 ▷ 소요 시간 : 1시간 20분 ▷ 풀이 과정 : 일단 문제가 참 긴데, 쉽게 설명하자면 컨테이너가 담긴 배열이 주어지고, 각 컨테이너별로 서로 다른 타입의 공들이 들어가 있는데, 이 공들을 같은 타입끼리 각 컨테이너에 넣을 수 있냐 없냐를 구하는 문제이다. .. 2022. 8. 3.
반응형
TOP