본문 바로가기

Testing/Jest6

Jest: Only와 Skip 사용해보기 Only해당 테스트만 실행시키고 싶을 경우에 사용한다. 해당 테스트가 실패했을 경우 외부의 요인에 의한 것인지, 테스트 자체 실행에서 문제가 있었던 것인지를 판별할 때 사용한다. describe("숫자 확인 예제", () => { test.only("2+2는 2보다 크다.", () => { expect(2+2).toBeGreaterThan(2); }); test("5는 5보다 크거나 같다.", () => { expect(5).toBeGreaterThanOrEqual(5); }); test("3는 8보다 작다.", () => { expect(3).toBeLessThan(8); });}) 테스트 중에 only가 붙은 테스트만 시행되고 나머지는 skipped로 된 것을 볼 수 있다... 2024. 9. 18.
Jest : Matcher에 대해서 Jest는 Matcher를 통해서 다양한 방식으로 값을 테스트할 수 있다. Matcher에 대한 내용은 Jest 공식 홈페이지 API를 참조하면 된다. 동등 비교Matcher설명toBe(값)기본 값을 비교하거나 객체 인스턴스의 참조 ID를 확인한다.toEqual(값)객체 인스턴스의 모든 속성을 비교한다. 즉 객체의 주소값이 아닌 깊은 값을 전부 비교한다.toStrictEqual(값) .toEqual과 비슷하지만, .toStrictEqual의 경우 객체의 키 값이나 배열의 값이 undefined일 경우에도 비교를 하며 해당 데이터의 타입도 비교한다. // fn.jsconst fn = { funcA: (a) => a + 10, funcB: (a, b) => ([a, b, undefined]), .. 2024. 9. 18.
Jest: Mock Function에 대해서 Mock function, 한국말로 하면 '모의 함수'라고 한다. 이 모의 함수의 경우 테스트하고자 하는 코드가 사용해야 하는 function이나 class가 있을 경우, 이에 대한 가상의 함수를 만들어 테스트를 하는 것을 말한다. 테스트 작성을 위한 환경 구축이 어렵거나, 테스트 시간이 오래 걸리는 등의 경우에 사용한다. Mock function의 경우 불확실한 정보를 가지고 테스트를 시행하는 것이기 때문에, 실제 구현에 대한 테스트가 필요하다면 가능한 한 Mocking을 피하고 실제 코드를 테스트하는 것이 좋다.  Mock function 사용하기 1. Mock 함수 생성가상의 함수를 생성하여 인자를 넘겨받아 호출할 수 있다. jest.fn();test("3을 입력할 경우 값은 5가 나온다.", ().. 2024. 9. 11.
Jest : 테스트 전 후 작업 설정하기 테스트가 수행되기 전에 반복적으로 발생할 필요가 있는 설정과, 수행된 이후에 반복적으로 발생할 필요가 있는 작업(예를 들어 테스트의 전후값 초기화, DB의 disconnect 동작 수행 등)이 있다. 이런 작업들을 반복 처리 가능하도록 jest에서는 해당 기능을 제공하고 있다. 만약 테스트 전 후로 테스트의 전후값 초기화 등이 발생하지 않는다면, 아래 예제처럼 변수 num이 1로 일관성 있게 유지되지 않기 때문에 원하는 테스트 결과를 얻을 수가 없다.const sum = require("../sum");describe("sum 테스트", () => { let num = 1; test("1더하기 2는 3이다.", () => { // num은 3이 됨 num = sum(num, 2); exp.. 2024. 9. 11.
Jest: 비동기 코드 테스트하기 비동기 코드를 테스트를 할 경우 로직이 완료되기 전에 테스트가 시행되기 때문에 정확한 테스트 결과값을 얻을 수 없다. 이에 Jest에서도 비동기 코드를 테스트 할 수 있는 몇 가지 방법을 제공한다.   콜백함수 방식Jest에서 done이라는 argument를 사용하게 되면 콜백 함수가 완료될 때까지 기다린 후에 테스트를 진행한다.// fn.js// 3초 뒤에 콜백함수를 호출하는 로직const fn = { getName: callback => { const name = "codingji"; setTimeout(() => { callback(name); }, 3000); }}module.exports = fn;//fn.test.jscons.. 2024. 9. 11.
Jest 사용하기 Jest · 🃏 Delightful JavaScript Testing (jestjs.io)  JestBy ensuring your tests have unique global state, Jest can reliably run tests in parallel. To make things quick, Jest runs previously failed tests first and re-organizes runs based on how long test files take.jestjs.io Jest는 JavaScript 테스트 프레임워크로, 내가 작성한 코드가 작동을 제대로 하는지를 검증하는 방법이다. Babel, TypeScript, Node, React, Angular, Vue 등에서 다양하게 사용할 수.. 2024. 9. 10.