// index.spec.js
=================================
const assert = require('assert')
describe('TESTING_SAJA GET /users', () => {
it('배열을 반환한다!!!', () => {
assert.equal(1, 1) // 1과 1은 같은가?
})
})
=================================
// package.json
=================================
{
"name": "node-api-server-sample",
"version": "1.0.0",
"description": "",
"main": "index3.js",
"dependencies": {
"express": "^4.17.0",
"morgan": "^1.9.1"
},
"devDependencies": {
"mocha": "^6.1.4",
"should": "^13.2.3",
"supertest": "^4.0.2"
},
"scripts": {
"start": "node ./index3.js",
"test": "mocha ./index.spec.js"
},
"author": "",
"license": "ISC"
}
=================================
1. mocha를 이용해 test 진행
npm test 또는 npm t
1 passing 확인 가능
1 = 1 이므로 성공함
2. 실패시 출력되는 로그 확인하기
// index.spec.js
=================================
const assert = require('assert')
describe('TESTING_SAJA GET /users', () => {
it('배열을 반환한다!!!', () => {
assert.equal(1, 2) // 1과 2는 같은가?
})
})
=================================
npm t
0 passing, 1 failing 확인 가능
1 != 2 이므로 FAIL
3. assert가 아닌 should 사용
index.spec.js
=======================================
const should = require('should')
describe('TESTING_SAJA GET /users', () => {
it('배열을 반환한다!!!', () => {
(1).should.equal(1) // 1과 1은 같은가? > 영어 문장같은 느낌이라 직관적임
})
})
=======================================
4. supertest 사용하기
index.spec.js
=======================================
const request = require('supertest')
const app = require('./index3')
describe('TESTING_SAJA GET /users', () => {
it('배열을 반환한다!!!', (done) => { // done은 mocha에서 지원하는 함수임
request(app)
.get('/users')
.end((err, res) => {
console.log(res.body)
if (err) throw err
done()
})
})
})
=======================================
// index3.js
=======================================
const express = require('express')
const app = express()
const users = [{name: 'Alice'}] // todo
app.get('/', function (req, res) {
res.send('Hello World with morgan!');
});
app.get('/users', (req, res) => {
res.json(users)
});
module.exports = app // express 객체를 외부에서 쓸 수 있도록
=======================================
npm t
입력시 정상 출력 확인 가능 -> TEST 정상 확인 완료
5. supertest와 should 함께 사용하기
index.spec.js
=======================================
const request = require('supertest')
const should = require('should')
const app = require('./index3')
describe('TESTING_SAJA GET /users', () => {
it('배열을 반환한다!!!', (done) => { // done은 mocha에서 지원하는 함수임
request(app)
.get('/users')
.end((err, res) => {
res.body.should.be.instanceof(Array) // 해당 값이 Array인지
res.body.forEach(user => {
user.should.have.property('name') // 해당 값의 key값으로 name이 있는지 확인
})
if (err) throw err
done()
})
})
})
=======================================
npm t
에러 없이 정상 1 passing 확인 가능
'Infra > Node.js' 카테고리의 다른 글
Node.js 체험하기 - 12 _ limit에 숫자가 오지 않는 상황에 대한 예외 처리 (0) | 2019.05.28 |
---|---|
Node.js 체험하기 - 11 _ /bin/www.js를 이용한 test / start 구분 (0) | 2019.05.24 |
Node.js 체험하기 - 9 _ api TEST를 위해 사용하는 devDependencies 소개 (0) | 2019.05.24 |
Node.js 체험하기 - 8 _ npm init의 활용 (0) | 2019.05.24 |
Node.js 체험하기 - 7 _ 요청 객체와 응답 객체 (0) | 2019.05.24 |