我想單元測試(摩卡&柴)在我的node.js應用程序池連接(MySQL)。我不知道我是否以正確的方式使用測試,如果是這樣,爲什麼他們總是被認定爲「待定」。如何單元測試池連接?
給出以下代碼,我將如何測試它?
var pool = mysql.createPool({
connectionLimit: 100,
host: 'localhost',
user: 'userName',
password: 'userPass',
database: 'userDatabase',
debug: false
});
我嘗試了很多方法,但似乎沒有工作。最好的我是這樣的:
describe("Database", function() {
describe("Connection", function() {
it("Should connect without an error", pool.getConnection(function (err, connection) {
expect(err).to.be.null;
})
);
})
});
這將返回,如果憑據是正確的:
Express server listening on port 8080
Database
Connection
- Should connect without an error
0 passing (15ms)
1 pending
,並返回,如果憑據不正確:
Express server listening on port 8080
Database
Connection
- Should connect without an error
1) Uncaught error outside test suite
0 passing (23ms)
1 pending
1 failing
1) Database Connection Uncaught error outside test suite:
Uncaught AssertionError: expected [Error: ER_DBACCESS_DENIED_ERROR: Access denied for user 'userName'@'localhost' to database 'userDatabase'] to be null
預先感謝您。
請注意,這是一個集成測試,而不是單元測試。它測試了兩個系統在一起工作,而不是* your *應用程序中的單個功能單元獨立工作。請參閱http://stackoverflow.com/questions/1217736/how-to-write-unit-tests-for-database-calls以測試數據庫調用。 –