일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- OCR
- mongoose
- nestjs
- TypeScript
- MongoDB
- Dinosaur
- typeORM
- Nest.js
- 공룡게임
- nodejs
- AWS
- Queue
- dfs
- JavaScript
- Express
- jest
- 자료구조
- 게임
- flask
- cookie
- Sequelize
- Python
- react
- GIT
- 정렬
- Bull
- game
- class
- MySQL
- Today
- Total
목록Test Case (6)
포시코딩
개요 오랜만에 Jest를 통해 테스트 코드를 작성하던 중 mockImplementation과 mockResolvedValue의 쓰임새에 대해 헷갈려 정리할 겸 포스팅 mockImplementation const mockResult = new Promise((resolve, reject) => { resolve({ message: '참여 성공' }); }); jest.spyOn(meetupsService, 'join').mockImplementation(() => mockResult); 모의 함수를 직접 구현할 때 사용한다. mockResolvedValue const mockResult = new Promise((resolve, reject) => { resolve({ message: '참여 성공' });..
오토 모킹 import { Test, TestingModule } from '@nestjs/testing'; import { ModuleMocker, MockFunctionMetadata } from 'jest-mock'; const moduleMocker = new ModuleMocker(global); // ModuleMocker는 getMetadata 메서드를 사용해 모듈의 메타데이터를 생성하고 // generateFromMetadata 메서드를 사용해 메타데이터를 바탕으로 모듈을 모킹한다. // 즉, 오토 모킹의 핵심 describe('ChatService', () => { let service: ChatService; // ChatService 인스턴스 let mockChatRepository:..
설치 npm i jest supertest -D jest 옵션 설정 jest.config.js module.exports = { // 해당 패턴에 일치하는 경로가 존재할 경우 테스트를 하지 않고 넘어간다. "testPathIgnorePatterns": ["/node_modules/"], // 테스트 실행 시 각 TestCase에 대한 출력을 해준다. verbose: true, } 더 자세한 Jest config에 대해서는 [링크] 참고 이번에는 package.json에서 Jest CLI 옵션을 추가한 jest script를 선언해보자 package.json { "scripts": { "test": "jest --forceExit", "test:silent": "jest --silent --forceExi..
테스트 코드란? 테스트 코드는 말 그대로 작성한 코드에 문제가 없는지 테스트하기 위해 작성하는 코드이다. 흔히 테스트 기본 원칙이라고 불리는 '일곱 테스트 원칙'은 다음과 같다. 테스팅은 결함이 없는 것이 아니라, 결함의 존재를 보여주는 것이다. 완벽한 테스트는 불가능하다. 테스트 구성은 가능한 빠른 시기에 시작한다. 결함은 군집되어 있다.(결함의 80%는 20%의 코드로 인해 발생한다.) Pesticide paradox(살충제 역설) - 비슷한 테스트가 반복되면 새로운 결함을 발견할 수 없다. 테스트는 정황에 의존적이다.(상황에 따라 다르다.) 오류 부재의 오해 - 사용되지 않는 시스템이나 사용자의 기대에 부응하지 않는 기능의 결함을 찾고 수정하는 것은 의미가 없다. https://www.boxuk.c..
코드 커버리지와 마찬가지로 테스트케이스 관련 개념이다. https://engineer-mole.tistory.com/217 [python] assert문 간단 사용법 assert문이란? 조건문이 True가 아닐 경우, 예외를 일으킨다. 지금까지 잘 움직이던 코드이지만, 추가로 코드를 작성했을 때 예상하지 못한 다른 동작을 하게 될 경우 assert문을 작성해둠으로써 빠 engineer-mole.tistory.com 위 포스팅을 참고했을 때 테스트 케이스를 작성하다보면 보통 조건식이 false일 경우를 고려하지 않는 경우가 있는데 이 경우에 assert문을 통해 예상치 못한 동작을 방지할 수 있다고 한다. 해당 포스팅에서는 python에서의 방법을 나타내고 있는데 앞으로 node.js를 사용하며 테스크케이..
https://techblog.woowahan.com/2677/ 팀 문화의 탄생 | 우아한형제들 기술블로그 {{item.name}} 안녕하세요, 우아한형제들 상품시스템팀의 손권남입니다. 가끔씩 저는 우리팀의 팀 문화에 대한 질문을 받곤 합니다. 그때마다 매번 단편적인 답을 드리곤 하면서 한 번 정도 우리의 techblog.woowahan.com 위 링크에서 KPT 회고 방법에 대해 공부하다 빌드 중 코드 커버리지가 떨어지면 빌드를 실패하게 하는 등 코드 커버리지란 생소한 개념에 대해 알게되어 공부하게 되었다. 코드 커버리지는 위키백과에 따르면 다음과 같다. 코드 커버리지(Code Coverage)는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표중 하나다. 말 그대로 코드가 얼마나..