나는이 사이트와 웹을 잠시 동안 검색해 왔으며이 문제에 대한 해결책을 찾을 수 없습니다. 내 API의 REST 기능을 테스트하려고하지만 PUT 테스트가 작동하지 않는 것 같습니다. 테스트가 모카에서 실행될 때마다 "잡히지 않은 어설 션 오류 : expected [] to equal {objectData}"오류가 발생합니다. 여기서 objectData는 내가 게시하려고하는 객체의 json 표현 (couponTwo라는 이름)입니다.Mocha에서 Supertest를 사용하여 Node.js Express API 및 MongoDB를 테스트하십시오.
beforeEach 함수에 문제가 있다는 느낌이 있습니다. 각 테스트 전에 데이터베이스가 지워지므로 다른 많은 테스트가 올바르게 실행되어야합니다. 이 질문에 대한 대답은 분명하고 경우
describe('#post', function() {
it('should return a coupon object after post', function (done) {
request(url).post('/coupons')
.set('Content-Type', 'application/json')
.send(couponTwo)
request(url).get('/coupons').end(function (err, res) {
if (err) throw err;
console.log(res.body);
res.body.should.eql(couponTwo);
done();
})
})
})
내가 사과 : 여기
var config = require('../config/config');
var mongoose = require('mongoose');
var should = require('should');
var request = require('supertest');
var Coupon = require('../models/coupon');
var url = require('../config/config').test.url;
process.env.NODE_ENV = 'test';
beforeEach(function (done) {
function clearCollections() {
for (var collection in mongoose.connection.collections) {
mongoose.connection.collections[collection].remove(function() {});
}
return done();
}
if (mongoose.connection.readyState === 0) {
mongoose.connect(config.test.db, function (err) {
if (err) throw err;
return clearCollections();
});
} else {
return clearCollections();
}
});
afterEach(function (done) {
mongoose.disconnect();
return done();
});
객체가 PUT 후 데이터베이스에 있는지 테스트하기 위해 예상되는이된다 다음은 테스트 코드입니다 나는 근본적인 무언가를 놓치고 있지만, 나는 한계에 도달했다. 당신의 도움을 주셔서 감사합니다!