본문 바로가기

Test

(6)
Unit Test에 대한 오해 풀기 유닛 테스트의 개념을 잘못 알아 테스트를 위한 테스트 코드가 되는 순간 새로운 기능을 구현할 때마다, 에러가 발생하는 테스트 코드를 다시 짜야하는 뻘짓을 하게 된다. 테스트 코드를 제대로 구현하기 위해 유닛 테스트에 대해 알아보고자 한다. 유닛 테스트의 유닛은 함수 하나를 가리키는 게 아니다. 유닛을 어떻게 정의 하느냐에 따라서 단순한 함수 하나를 테스트할 수도 있고 하나 이상의 함수 등이 합쳐진 코드를 테스트할 수도 있다. 예를 들어 전자렌지의 성능을 높인다고 해보자. 시작 버튼을 눌렀을 때 좀 더 효율적으로 돌아가도록 트렌지스터를 교체한다고 하자. 이 과정에서 어떤 트렌지스터를 쓸지, 몇개나 쓸지 등의 직접적인 코드 구현은 어떻게 해도 상관이 없다. 중요한 것은 시작 버튼을 눌렀을 때 이전과 동일하게..
import, export가 쓰인 파일을 jest로 테스트하는 방법 앱을 구현하다가 재사용 빈도가 높을 모달을 만들게 됐고 회사에서 조금 끄적여본 테스트 코드를 적용해보고 싶어졌다. 하나만 손대더라도 다양한 방법으로 사용될 모달 클래스에 문제가 생길 우려가 있었기 때문이다. 또한 모달은 다른 구현체에 비해 복잡도가 높지 않아 만만해 보이기도 했다. 그러나 jest가 import가 붙은 파일을 테스트하지 못했다. test 명령을 입력할 때마다 모르는 문법이라고 짜증을 냈다. 노드는 기본적으로 import와 export를 모른다. 노드 기반의 jest를 올바로 동작하게 하려면 바벨 형님을 이용해 변환 작업이 필요했다. 먼저 필요한 devDependencies는 다음과 같다. 전부 설치하자. "devDependencies": { "@babel/core": "^7.12.7", ..
codeceptJS 설치법 1. node 버전을 최신으로 바꾼다. 2. 프로젝트 폴더에 들어가서 다음을 입력해 codeceptjs를 설치한다. npx create-codeceptjs . 3. 다음을 입력해 초기 설정을 한다. npx codeceptjs init 여러 옵션을 선택할 수 있는 리스트가 나타나고 default로 하되 helpers를 물을 때에는 Playwright를 선택한다. 4. _test.js 파일의 내용을 바꾼다. Feature('My First Test'); Scenario('test something', ({ I }) => { I.amOnPage('https://github.com'); I.see('GitHub'); }); 5. 다음을 입력해 위의 내용 대로 테스트 한다. npm run codeceptjs 아래..
Jest의 기본 메소드 test('Truthy & Falthy', () => { expect(null).toBeNull(); expect(undefined).toBeUndefined(); expect(1).toBeDefined(); expect(1).toBeTruthy(); expect(0).toBeFalsy(); }); test('Number', () => { expect(2).toBeGreaterThan(1); expect(2).toBeGreaterThanOrEqual(1); expect(2).toBeLessThan(3); expect(2).toBeLessThanOrEqual(3); expect(1.1 + 0.1).toBeCloseTo(1.2); // 소수의 계산을 확인할 때에는 toBe 대신 toBeCloseTo를 쓴다...
Jest에서 toBe와 toEqual의 차이점 test('toBe는 obj가 같은 객체를 가리키고 있는지 확인한다', () => { const obj = {}; expect(obj).toBe(obj); // true }); test('객체의 내용이 같더라도 서로 다른 메모리에 있는 객체이기 때문에 toBe를 쓰면 false가 나온다.', () => { expect({ name: 'John' }).toBe({ name: 'John' }); // false }); test('대신에 객체의 내용이 같은지를 확인하려면 toEqual을 써야 한다', () => { const obj = {}; expect({ name: 'John' }).toEqual({ name: 'John' }); // true }); 참고 : https://jestjs.io/docs/en..
Jest 설치와 기본 사용 방법 - Testing Tool 1. 터미널에서 프로젝트 폴더에 들어가 다음을 입력한다. npm install --save-dev jest 2. sum.js 파일을 만들어 그 안에 다음을 입력하고 저장한다. function sum(a, b) { return a + b; } module.exports = sum; 3. sum.test.js 파일을 만들어 그 안에 다음을 입력하고 저장한다. const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); }); 4. package.json 파일을 만들어 그 안에 다음을 입력하고 저장한다. { "scripts": { "test": "jest" } } 5. 터미널에서 npm run test..