gpt4 book ai didi

javascript - Mocha/Node.js/PostgreSQL 集成测试

转载 作者:行者123 更新时间:2023-11-29 12:11:28 25 4
gpt4 key购买 nike

几天来我一直在努力让它发挥作用。我浏览了互联网和 StackOverflow。有一些示例说明如何使用 MongoDB 测试 API 以及如何编写执行 PSQL 命令的 Mocha 测试。这不是我想要的。

我为 pg 创建了一个包装器, 从指令中调用 db.js in this SO question (请注意我在调用 console.log() 时的评论:

pg = require("pg");
config = require("./../config.js");

module.exports = {
query: function(text, values, cb) {
console.log("I get to this in Mocha");
pg.connect(config.connectionString, function(err, client, done) {
console.log("I never get here");
if (err) return console.error("error connecting to postgres: ", err);
client.query(text, values, function(err, result) {
console.log("I most certainly never get here");
done();
cb(err, result);
})
});
}
}

有了它,我可以执行以下操作:

$ node
$ var db = require ("./path/to/db.js");
$ db.query("insert into sometable(id, value) values(1, \"blah\")", {}, function (err, result) {
if (err) { console.error ("db errored out man"); }
console.log("no error...");
console.log(result);
});

信不信由你, 工作顺利!

我不能在 mocha 测试(即 db.spec.js)中做同样的事情:

var db = require("./../../../Data/db.js");

// These tests assume you have run the scripts in the -SQL repo
describe("module: db", function() {
it("provides a wrapper for the execution of queries", function () {
db.query("insert into employer.profile \
(id, returncustomer, receiveupdates, name, email, password, active) \
values (4, true, true, 'someNameLol', 'ce@spam.org', 'change_me', true)", {},
function (err, stdout, stderr) {
console.log(err || "");
console.log(stdout || "");
console.log(stderr || "");
}
);
});
});

帮助!我希望能够使用我的数据库连接编写集成测试。有没有我缺少的组件?需要库吗?

这都是手工制作的,我没有使用 IDE,因为我想自己了解它应该如何工作。

提前致谢。

最佳答案

您需要包含 done 参数,并在测试结束时调用它。

describe("module: db", function() {
it("provides a wrapper for the execution of queries", function (done) {
db.query("insert into employer.profile \
(id, returncustomer, receiveupdates, name, email, password, active) \
values (4, true, true, 'someNameLol', 'ce@spam.org', 'change_me', true)", {},
function (err, stdout, stderr) {
console.log(err || "");
console.log(stdout || "");
console.log(stderr || "");
done();
}
);
});
});

关于javascript - Mocha/Node.js/PostgreSQL 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32619463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com