2016-08-11 4 views
0

Express 및 Mongoose로 REST API를 구축하고 Mocha 및 Chai로 테스트하고 있습니다.Test를위한 테스트 데이터베이스 생성 및 연결 Express.JS REST API

API를 테스트하기 위해 별도의 테스트 데이터베이스와 환경을 설정하려고하지만 Express에서이를 수행하는 방법을 모르겠습니다. 이 일에 대해 어떻게 생각하세요?이

import chai from 'chai'; 
import mongoose from 'mongoose'; 
import Post from '../models/posts'; 
import app from '../app.babel'; 
import chaiHttp from 'chai-http'; 

chai.use(chaiHttp); 

const expect = chai.expect; 

describe('GET /posts',() => { 

    it('should return a 200 status code', (done) => { 
    chai.request(app) 
    .get('/api/posts') 
    .set('Accept', 'application/json') 
    .end((err, res) => { 
     expect(err).to.be.null; 
     expect(res).to.have.status(200); 
     done(); 
    }); 
    }); 
}); 

describe('DELETE /posts',() => { 

    it('should return 200', (done) => { 
    const post = { 
     "title": "velit minim aliqua quis proident", 
     "body": "Quis tempor elit pariatur pariatur", 
     "posted": "2014-03-13T04:23:30 -00:00" 
    }; 
    Post.create(post, (err, post) => { 
     chai.request(app) 
     .del('/api/posts/' + post._id) 
     .end((err, res) => { 
     expect(err).to.be.null; 
     expect(res).to.have.status(200); 
     done(); 
     }); 
    }); 
    }); 
}); 

사전에

import express from 'express'; 
import mongoose from 'mongoose'; 
import Post from './models/posts'; 
mongoose.connect('mongodb://localhost/blog-site'); 

const app = express(); 

app.use('/', express.static('public')); 

app.get('/api/posts', (req, res) => { 
    Post.find((err, doc) => { 
    if(err) return console.error(err); 
    res.send(doc) 
    }); 
}); 

app.delete('/api/posts/:_id', (req, res) => { 
    Post.findOneAndRemove({ _id: req.params._id }, (err) => { 
    if(err) return console.error(err); 
    res.sendStatus(200); 
    }); 
}); 

app.listen(process.env.PORT || 3000); 

export default app; 

감사를 app.babel.js

앱 test.js :

app-test.js 아래 app.babel.js 참조하십시오.

답변

1

테스트 및 프로덕션 데이터베이스를 등록 할 수있는 다른 js 파일을 추가하십시오.

process.env.NODE_ENV = 'test' 
process.env.MONGO_URL = 'mongodb://localhost/testing' 

그리고 연결은 다음과 같이 쓸 때 :

var dbUri = process.env.MONGO_URL || 'mongodb://localhost/testing' 
var db = mongoose.connect(dbUri) 
이 같이