1
我想在NodeJS中使用mocha/chai驗證正確的數據庫操作。我試圖創建一種方式來運行一個SQL查詢,然後驗證它是否正確執行。現在我正在按順序執行所有的mysql執行,但是當我到達斷言時,結果還沒有生成,所以我想知道這個問題的最佳解決方案?在NodeJS中創建一個返回查詢結果作爲回調的函數?
這是我現在設置的方式,但expect()語句運行時,數組中沒有數據。
const assert = require('chai').assert;
const expect = require('chai').expect;
const mysql = require('mysql');
describe('Test mysql credentials, connection and CRUD operation', function() {
var host = "localhost";
var user = "user";
var pass = "pass";
describe('Test CREATE DATABASE', function() {
var connection = mysql.createConnection({
host: host,
user: user,
password: pass
});
before(function(done) {
connection.query("CREATE DATABASE test_db;", function(err, result) {
if (err) throw err;
});
done();
});
it('Database Sucessfully Created', function() {
var databases = new Array();
connection.query("SHOW DATABASES;", function(err, result) {
if (err) throw err;
for (i = 0; i < result.length; i++) {
databases.push(result[i].Database);
}
});
expect(databases).to.include('test_db');
});
});
https://mochajs.org/#asynchronous-code。如果您願意,您也可以返回Promise。 – pethel
謝謝。這似乎解決了這個問題。那麼查詢函數中的函數(err,result)基本上是內置的回調函數嗎? – adaelemans
你是什麼意思的內置回調? – Erazihel