sqlite3代码不能在jasmine中运行

时间:2016-10-23 17:42:49

标签: node.js sqlite jasmine

有没有人试过在jasmine测试框架下运行sqlite3代码?出于某种原因,相同的代码可以显示带有节点的表行,但不能在运行jasmine的节点下显示。

例如,这会显示表[table_name]中的所有行:

logging

茉莉花下的这个完全相同的代码不会:

$ node src/test.js
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database("/home/user/test_db.sqlite3", 'OPEN_READ');
db.each("SELECT info FROM table_name", function(err, row) {
    console.log(row.info);
});

有谁知道为什么它在一张桌子下运行但不在另一张桌子下运行?

1 个答案:

答案 0 :(得分:0)

您需要异步运行测试。 Jasmine没有等待DB连接和迭代。您可以向Jasmine提供callback,让它知道可以运行测试。另外,根据文档,我必须提供sqlite3.OPEN_READONLY作为使其工作的模式。也许这是由于版本的变化。

describe("Orders table", function() {
    it("should display all items in table [table_name]", function(done) {
        var sqlite3 = require('sqlite3').verbose();
        var db = new sqlite3.Database("/home/user/test_db.sqlite3", sqlite3.OPEN_READONLY, function() {
            db.each("SELECT info FROM table_name", function(err, row) {
                console.log(row.info);
            }, done);
        });
    })
});