2017-09-20 1 views
1

mongo 연결을 사용하는 koa 서버가 있고 서버를 모의하고 suktest를 사용하여 테스트 프레임 워크로 요청을 전송합니다.테스트 후 서버 및 db 연결 닫기

const app = new Koa() 
... 
export default app.listen(PORT, (err) => { 
    if (err) console.log(err) 

    if (!IS_TEST) { 
    console.log(`Server running on port: ${PORT}`) 
    } 
}) 

성공한 테스트가 완료되었거나 서버 연결에 실패한 스틸이 작동 한 후 테스트 후 koa 서버 연결이 얼마나 가까운가요?

시험 예 :

import supertest from 'supertest' 
import mongoose from 'mongoose' 
import server from '../../../app/server' 
import User from '../../../app/models/user' 

const r = supertest.agent(server.listen()) 

afterEach(async (done) => { 
    await mongoose.connection.db.dropDatabase() 
    done() 
}) 

describe('Authorization',() => { 
    describe('POST /signup',() => { 
    const userData = { 
     email: '[email protected]', 
     password: 111111, 
    } 

    test('success create user', (done) => { 
     r 
     .post(`/api/auth/signup`) 
     .send(userData) 
     .expect(200) 
     .expect({ 
      data: { 
      email: userData.email, 
      }, 
     }) 
     .end(done) 
    }) 

    test('fail of user create, password required', (done) => { 
     const userData = { 
     email: '[email protected]', 
     } 

     r 
     .post(`/api/auth/signup`) 
     .send(userData) 
     .expect(400) 
     .expect({ 
      errors: { 
      password: 'Password required', 
      }, 
     }) 
     .end(done) 
    }) 
    }) 
}) 

답변

0

이미 알고있을하지만 Supertest 테스트에 .end()을 호출 한 후 종료에 서버를 설계되었습니다. 증거로 supertest lib code에서이 기능에 대한 선언을 볼 수 있습니다.

) (단부를 호출하는 대신 데이터베이스 연결과 농담의 서버 또는 afterEach() afterAll() 농담의 해체 후크 모두 강제로 종료

:

afterAll(() => { 
    mongoose.connection.close(); 
    server.close(); 
});