Mocha/Node.js/PostgreSQL集成测试
Mocha/Node.js/PostgreSQL integration testing
我已经尝试了好几天了。我在互联网和StackOverflow上查过了。有一些例子说明如何使用MongoDB测试api,以及如何编写执行PSQL命令的Mocha测试。那不是我想要的。
我为pg创建了一个包装器,从这个SO问题中的指令中称为db.js
(请注意我在调用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();
}
);
});
});
相关文章:
- Meteor集成测试,在velocity'她的镜子上有茉莉花
- 单页应用程序的javascript集成测试
- Javascript代码集成测试
- Javascript 客户端框架与 Rails JSON API - 如何进行集成测试
- Dropzone.js :在 php-webdriver 集成测试中上传文件而不带浏览对话框
- 如何对(Angularjs)Web应用程序进行集成测试
- 复杂的CSS选择器,用于使用webdriverjs进行集成测试
- Ember.js:坚持初始集成测试
- 余烬集成测试错误.处理异步副作用
- 如何在集成测试中访问ember数据存储实例
- 在ember.js/QUnit集成测试中,如何让QUnit在断言之前等待模型完成加载
- Ember集成测试,如何使用wait构建自定义Helper
- 访问Jasmine中的Meteor模板帮助程序函数进行集成测试
- 如何使用npm库提供异步集成测试
- 可以在集成测试中的规格之间重新启动浏览器吗
- Javascript集成测试框架
- 集成测试JavaScript与本地存储交互的正确方法是什么
- Ember集成测试:承诺在呈现之前被拒绝
- Angular.js单元/集成测试-触发链接功能
- Mocha/Node.js/PostgreSQL集成测试