티스토리 뷰
테스트 환경 셋팅하기
# 프로젝트 init
npm init -y
# 필수 라이브러리 및 프레임워크 설치하기
npm i --save express
npm i --save-dev chai chai-http mocha
# 아래와같이 package.json 파일을 수정
"scripts": {
"test": "./node_modules/mocha/bin/mocha"
},
main.js 파일을 생성
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))
app.get('/', (req, res) => {
console.log('GET /')
res.send('Hello World')
})
app.get('/user', (req, res) => {
console.log('GET /user')
res.json({ username: 'John', pw: 'test1234' })
})
module.exports = app
test 폴더 생성후 test.js 파일 생성
const chai = require('chai')
const chaiHttp = require('chai-http')
chai.use(chaiHttp)
const expect = chai.expect;
const app = require('../main');
describe('test case 1', () => {
it('200을 리턴해야 한다. (1000ms 이내)', function(done) {
this.timeout(1000)
chai.request(app)
.get('/')
.end((err, res) => {
expect(res).to.have.status(200)
done()
})
}),
it('200을 리턴해야 한다. (100ms 이내)', function(done) {
this.timeout(100)
chai.request(app)
.get('/')
.end((err, res) => {
expect(res).to.have.status(200)
done()
})
}),
it('200을 리턴해야 한다. (10ms 이내)', function(done) {
this.timeout(10)
chai.request(app)
.get('/')
.end((err, res) => {
expect(res).to.have.status(200)
done()
})
})
})
describe('test case 2', () => {
it('GET / 테스트. return ("Hello World")', function(done) {
this.timeout(1000)
chai.request(app)
.get('/')
.end((err, res) => {
expect(res.text).to.equal('Hello World')
done()
})
}),
it('GET /user 테스트. return { username: "John", pw: "test1234" }', function(done) {
this.timeout(1000)
chai.request(app)
.get('/user')
.end((err, res) => {
expect(err).to.be.not.ok
expect(res).to.have.status(200)
expect(res).to.be.json
expect(res.body).to.deep.equal({ username: "John", pw: "test1234" })
done()
})
})
})
테스트 수행
npm test
결과 이미지
'기타' 카테고리의 다른 글
언제 로컬에서 HTTPS를 사용해야 할까? (0) | 2024.10.30 |
---|---|
소프트웨어 개발 원칙에 관해 (2) | 2024.10.24 |
Windows 10 CMD창에서 Git사용시 한글 문제 해결법 (0) | 2019.04.26 |
Git 강제 push 이후 Merge 없이 Pull 하기 (0) | 2019.04.25 |
Postgresql Centos에 설치하기 (timescaledb 설치) (0) | 2019.03.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 안드로이드
- 한글 깨짐
- 팩토리 메소드 패턴
- 한글깨짐
- django
- cmd
- git log
- 플라스크
- 추상 클래스
- ㄹ
- 웹
- 팩토리 패턴
- Python
- 구글맵
- flask
- Git
- 구글 맵
- Windwos
- Windows
- 심플 팩토리 패턴
- Google Map
- Apache
- 깨짐
- 한글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함