NodeJs Mocha 未连接到数据库
NodeJs Mocha Not Connecting to Database
我正在尝试使用 Mocha
和 Chai
创建一些单元测试,但我无法连接到 mysql 服务器。这是我的单元测试:
process.env.NODE_ENV = 'test';
let chai = require('chai');
let chaiHttp = require('chai-http');
let server = require('../app');
let should = chai.should();
chai.use(chaiHttp);
describe('API endpoint /authenticate', function () {
before((done) => {
/* Todo: Clean up Database*/
done()
});
it('should authenticate a user given CORRECT username/password', (done) => {
let user = {
username: 'ax850',
password: 'test'
};
chai.request(server)
.post('/api/authenticate')
.send(user)
.end((err, res) => {
res.should.have.status(200);
done();
});
done();
});
});
如您所见,我正在执行 POST
请求。然后在我处理这个 POST
请求的脚本中,我像这样连接到 mySQL 服务器:
const db = require('./../../db_conn');
在 db_conn
我有:
const mysql = require('mysql');
const config = require('config.json')('./config.json');
let db;
const db_config = config.a_c.dbConfig;
function connectDatabase() {
if (!db) {
db = mysql.createConnection({
host: db_config.host,
user: db_config.user,
port: db_config.port,
database: process.env.NODE_ENV === 'test' ? db_config.db_test : db_config.db_dev,
//database: db_config.db_dev,
password: db_config.password
});
db.connect(function(err){
if(!err) {
console.log('Database is connected!');
} else {
console.log('Error connecting database!');
}
});
}
return db;
}
module.exports = connectDatabase();
但是,当我 运行 我的 test
命令:mocha --timeout 10000
时,它没有连接到数据库。 mysql.createConnection
运行 没有成功,但也没有给出错误。有任何想法吗?这在我 运行 服务器未经测试时有效。
您正在请求完成前调用 done
。
chai.request(server)
.post('/api/authenticate')
.send(user)
.end((err, res) => {
res.should.have.status(200);
done();
});
// this is executed before chai.request is fulfilled
done();
我正在尝试使用 Mocha
和 Chai
创建一些单元测试,但我无法连接到 mysql 服务器。这是我的单元测试:
process.env.NODE_ENV = 'test';
let chai = require('chai');
let chaiHttp = require('chai-http');
let server = require('../app');
let should = chai.should();
chai.use(chaiHttp);
describe('API endpoint /authenticate', function () {
before((done) => {
/* Todo: Clean up Database*/
done()
});
it('should authenticate a user given CORRECT username/password', (done) => {
let user = {
username: 'ax850',
password: 'test'
};
chai.request(server)
.post('/api/authenticate')
.send(user)
.end((err, res) => {
res.should.have.status(200);
done();
});
done();
});
});
如您所见,我正在执行 POST
请求。然后在我处理这个 POST
请求的脚本中,我像这样连接到 mySQL 服务器:
const db = require('./../../db_conn');
在 db_conn
我有:
const mysql = require('mysql');
const config = require('config.json')('./config.json');
let db;
const db_config = config.a_c.dbConfig;
function connectDatabase() {
if (!db) {
db = mysql.createConnection({
host: db_config.host,
user: db_config.user,
port: db_config.port,
database: process.env.NODE_ENV === 'test' ? db_config.db_test : db_config.db_dev,
//database: db_config.db_dev,
password: db_config.password
});
db.connect(function(err){
if(!err) {
console.log('Database is connected!');
} else {
console.log('Error connecting database!');
}
});
}
return db;
}
module.exports = connectDatabase();
但是,当我 运行 我的 test
命令:mocha --timeout 10000
时,它没有连接到数据库。 mysql.createConnection
运行 没有成功,但也没有给出错误。有任何想法吗?这在我 运行 服务器未经测试时有效。
您正在请求完成前调用 done
。
chai.request(server)
.post('/api/authenticate')
.send(user)
.end((err, res) => {
res.should.have.status(200);
done();
});
// this is executed before chai.request is fulfilled
done();