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

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

(49개의 수강평)

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

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

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

1
오형원 프로필

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

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

0
오형원 프로필

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

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

0
Jiwon 프로필

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

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

res.send('Hello World!');

});

 

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

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

1
참참이 프로필

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

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

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

1
엄창용 프로필

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

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

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

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 10달 전

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

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

0
Julio 프로필

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

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

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

1
Julio 프로필

Mocha + Should vs Jasmine Julio 10달 전

Jasmine의 경우엔 테스트 러너와 검증을 같이 제공하는것 같은데,

실무환경에서는 Mocha + Should 와 Jasmine 중 어떤것을 많이 사용하는지 궁금합니다.

많이 사용하는 이유가 있다면 이유도 궁금하고요..

0
geundragon 프로필

In Memory DB 관련 질문드립니다~! geundragon 11달 전

안녕하세요 강사님 세션을 저장할때 In Memory DB를 사용하면 좋다고 말씀하셨는데,

1.그럼 서버를 재구동하면 세션정보는 다 날아가는건가요?!

  1. 간단한 사이트를 운영하는데 서버쪽 소스를 수정하면 업데이트 하기위해서 매번 서버를 재구동시키는데, 좋지 않은 방법인가요? 라우팅정보만 수정하는 로직을 만들어서 그것만 실행시키는게 좋을까요?

1
Gichul Roh 프로필

강의를 보면서 입력한 코드는 전부 맞는 것 같은데, 에러가 하나 떠서요 Gichul Roh 2018.10.06

PUT /users/3 404 0.752 ms - -

1) 변경된 name을 응답한다

1) PUT /users/:id
성공시
변경된 name을 응답한다:

Uncaught AssertionError: expected Object {} to have property name

```app.put('/users/:id', (req, res) => {
const id = parseInt(req.params.id, 10);
if (Number.isNaN(id)) return res.status(400).end();

const name = req.body.name;
if (!name) return res.status(400).end();

const isConflict = users.filter(user => user.name === name).length;
if (isConflict) return res.status(409).end();

const user = users.filter(user => user.id === id)[0];
if (!user) return res.status(404).end();

user.name = name;

res.json(user);

});

it('변경된 name을 응답한다', (done) => {
const name = 'chally';
request(app)
.put('/users/3')
.send({name: name})
.end((err, res) => {
res.body.should.have.property('name', name);
done();
});
})

1
Gichul Roh 프로필

curl 명령어 관련 Gichul Roh 11달 전

맥 환경에선 curl 명령어를 실행하여 확인가능 하지만,

윈도우 cmd 모드에선 curl 명령어를 사용하기 위해서 따로 설치해야 하나요?

아니면 윈도우 cmd 모드에서 node index.js 기동하고 나서

확인할 수 있는 다른 방법이 있나요?

3
이창헌 프로필

강의 파일 공유 가능할까요?? 이창헌 2018.09.27

강의해주신 소스코드 공유 가능할까요??

좋은 강의 감사합니다.

0
여어 프로필

isNaN Number.isNaN 여어 2018.08.18

그냥 IsNaN이라고 쓰면 프로토타입 체이닝을 통해서 Number.isNaN을 찾는 과정이 들어가게 되나여?

그래서 Number.isNaN으로 쓰셨는지 궁금합니다

2
여어 프로필

assert vs should 여어 2018.08.08

왜 assert말고 should가 권장되나여???

가독성 때문인가요

0