isConnected應該是一個變量,用於測試數據庫連接是否成功。現在在我的DatabaseTest類中,我想聲明這個isConnected變量。 isConnected在數據庫對象中聲明,所以它應該可以通過database.isConnected訪問。但是,在makeConnection()和closeConnection()中值不會改變。我懷疑這是由於isConnected不是全局變量。另外,當我將它聲明爲僅在var mysql行後面的var isConnected時,它也不會更新它。 我是否缺少一些基本範圍基礎知識?變量isConnected未更改
var mysql = require('mysql');
//Database
var database = {
isConnected: false,
makeConnection: function(){
var connectionString = {
host: '192.168.1.3',
port: 3306,
user: 'root',
password: 'secret',
database: 'user_profile_database'
};
var activeConnection = mysql.createConnection(connectionString);
activeConnection.connect(function(error){
if(error){
throw error;
}
console.log("Successfull connection!");
});
isConnected = true;
return activeConnection;
},
closeConnection: function(activeConnection){
activeConnection.end(function(error){
if(error){
throw error;
}
console.log("Successfull disconnetion!");
});
isConnected = false;
}
}
module.exports = database;
所以這是測試用例:
var database = require('../Code/Database/Database');
var expect = require('chai').expect;
//Tests for the Database class.
describe("#Database", function(){
//Test for the makeConnection method
describe("#makeConnection", function(){
it("should make a connection with the database", function(){
expect(database.isConnected).to.be.false;
var connection = database.makeConnection();
expect(database.isConnected).to.be.true;
})
})
})
'isConnected'是你對象的屬性。您必須通過對該對象的引用來引用該屬性。 – Pointy