테스트주도개발(TDD)로 만드는 NodeJS API 서버

테스트주도개발(TDD)로 만드는 NodeJS API 서버

(66개의 수강평)

892명의 수강생
29,700원
지식공유자 · 김정환
60회 수업· 총 3시간 49분수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 중급
Soomin Darcie Park 프로필

express 4.x 에서는 body parser를 기본으로 제공하고 있습니다. Soomin Darcie Park 15일 전

http://expressjs.com/ko/4x/api.html#req.body

express모듈이 require로 불러와져 있다면 미들웨어는 아래와같이 가져오시면 됩니다.

app.use(express.json()) // for parsing application/json
app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

0
Rorschach 프로필

자바스크립트 자동완성 질문 Rorschach 18일 전

저는 자동완성이 뜨질 않는데 혹시 어떤걸 세팅해야할까요??

0
purea0914 프로필

id와 관련한 부분은 데이터베이스에 저장을 한 적이 없는 것 같은데 purea0914 25일 전

id와 관련한 부분은 데이터베이스에 저장을 한 적이 없는 것 같은데,

이 부분은 자동으로 생성이 되는 건가요?

0
shhan730@gmail.com 프로필

코드 관련 문의 shhan730@gmail.com 2달 전

강의중 작성하신 코드를 혹시 github에 공개해 주실수 있을까요?
감사합니다.

1
Hyunsang Han 프로필

update는 연동이 잘 안되네요 ㅠ Hyunsang Han 3달 전

써주신 로직 그대로 따랐는데(상세한 코드는 좀 다르게 쓰긴 했지만) 작동이 안되어요. user.name === name 이 true가 나오고 있고, unique설정도 모델에서 해줬는데 말입니다. 문제가 뭘까요?ㅠ

const update = (req, res) => {
const id = parseInt(req.params.id, 10)
const name = req.body.name;
if (!name || Number.isNaN(id)) return res.status(400).end();

// models.User.update를 써도 되지만 아래와 같이 findOne과 save()를 쓸 수도 있음
models.User.findOne({ where: { id } })
.then(user => {
if (!user) return res.status(404).end();
user.name = name;
user.save()
.then(() => {
res.status(203).json(user);
})
.catch(err => {
if (err.name = 'SequelizeUniqueConstraintError') {
return res.status(409).end();
}
res.status(500).end();
})
})
};

0
Hyunsang Han 프로필

데이터베이스 싱크에 대해 조금만 설명 더 부탁드립니다. Hyunsang Han 3달 전

(진짜 강의 너무너무 유익하게 잘 듣고 있습니다.

 제가 들어본 인프런 강의 중 최고예요.)

근데, 데이터베이스 관련해서는 살짝 더 설명주시면 좋을 것 같습니다.

- 데이터베이스와 ORM을 연결?한다는 게 무슨 뜻인지

- 싱크가 무엇이며 왜 하는 것인지(이번 강의에서 매 테스트수트마다 새로 데이터 싱크 과정을 추가했는데, 이렇게 매 테스트마다 수동으로 추가하는 과정이 약간 제가 생각했던 DB의 느낌과 다른 것 같아서요)

위 부분들에 대해 살짝 찝찝하게 넘어갔는데, 답변 달아주시면 대단히 감사하겠습니다.(강사님 아니어도 아시는 수강생분은 답변 부탁드릴게요!)

2
이충만 프로필

혹시 이 부분은 nodejs만의 특징인가요? 이충만 4달 전

아니면 혹시 자바스크립트의 특징으로 보아도 무방할까요?

1
Dot Support 프로필

HTTP Request 값이 2초가 넘어 갈때의 해결법 Dot Support 8달 전

Get요청으로 해당 HTTP를 긁어오는 테스트를 하려고 하는데 모카 테스트에서 2초가 넘어갔다는 이유로 계속 실패합니다. 해결방법이 있나요?

1
오형원 프로필

동영상 재생이 원활하지 않은데요? 20초 간격으로 끊겨서 30초 정도 기다리면 진행이 되네요??? 동영상 재생이 원활하지 않은데요? 20초 간격으로 끊겨서 30초 정도 기다리면 진행이 되네요??? 오형원 9달 전

동영상 재생이 원활하지 않은데요? 20초 간격으로 끊겨서 30초 정도 기다리면 진행이 되네요??? 

0
오형원 프로필

동영상 재생이 원활하지 않은데요? 20초 간격으로 끊겨서 30초 정도 기다리면 진행이 되네요??? 오형원 9달 전

동영상 재생이 원활하지 않은데요? 20초 간격으로 끊겨서 30초 정도 기다리면 진행이 되네요??? 

0
Jiwon 프로필

Wrapping 의 뜻이 잘 이해가 안 갑니다. Jiwon 9달 전

app.get('/', function(req, res){

res.send('Hello World!');

});

 

이 부분에서 http 의 req, res를 한번 wrapping 한 express의 객체라고 하셨는데

그 의미가 이해가지 않습니다 ㅜㅜ 

1
참참이 프로필

spec 파일이 여러 개 일 때! 참참이 11달 전

패쓰가 늘어나면서 spec 파일도 늘어났을 때

파일들의 관리와 테스트 수행은 어떻게 하나요?

1
엄창용 프로필

TDD 슈퍼테스트2 강의 중 엄창용 11달 전

이리저리 찾아보는데도 모르겠어서 질문드립니다.

모듈에서 가져온 기능을 못 찾는 거 같은데 원인을 모르겠습니다ㅠㅠ

Web Strom을 사용하고 있습니다.

1) GET /users는

...:

TypeError: app.daddress is not a function

at Test.serverAddress (node_modulessupertestlibtest.js:55:18)

at new Test (node_modulessupertestlibtest.js:36:12)

at Object.obj.(anonymous function) [as get] (node_modulessupertestindex.js:25:14)

at Context.it (index.spec.js:7:14)

//index.js

const express = require('express');

const morgan = require('morgan');

const app = express();

const users = [

{id: 1, name: 'alice'},

{id: 2, name: 'bek'},

{id: 3, name: 'mike'}

];

app.use(morgan('dev'));

app.get('/', function (req, res){

res.send('Hello World!');

});

app.get('/users', function (req,res) {

res.json(users);

});

app.post('/users', function (req,res) {

res.send(user)

});

app.listen(3000, function(){

console.log('Example app listening on port 3000!');

});

module.exports = app;

//index.spec.js

const app = require('./index');

const request = require('supertest');

describe('GET /users는', ()=>{

it('...', (done)=>{

request(app)

.get('/users')

.end((err, res)=>{

console.log(res.body);

done();

})

})

})

2
Julio 프로필

모듈별 테스트 파일들이 많아질 경우, 일괄 테스트 진행할때에는 어떻게 처리하나요? Julio 2018.12.13

모듈별 테스트 파일들이 많아질 경우, 일괄 테스트 진행할 때에는 어떻게 처리하나요?

build 시점에 테스트를 선행해서 문제가 없을 경우 빌드되도록 연계하고 싶을때에는 어떻게 처리하는지도 궁금합니다.

0
Julio 프로필

supertest 관련 코드를 작성하고 mocha로 테스트를 돌린 이후에 Julio 2018.12.12

supertest 관련 코드를 작성하고 mocha로 테스트를 돌린 이후에

프로세스가 종료가 안되고 대기상태로 남아있는데 어떤 부분을 의심해 보면 좋을까요?

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스