【发布时间】:2016-09-18 23:48:59
【问题描述】:
我正在使用 pg-promise。我是学习者,如果对你来说似乎微不足道,请原谅。我该如何编写单元测试。它错误数据未定义。我一直在 js 文件中建立连接并导出该模块。另一个 js 文件用于查询数据库并获取结果集。代码按预期工作有问题我如何用 mocha 和 chai 编写单元测试。
test1.js
var dbConn= pgp(connUrl);
module.exports = {
getconnect: function () {
return dbConn;
}
};
test2.js
module.exports = {
getData: function (req, res) {
db.getconnect().query(sqlStr, true)
.then(function (data) {
console.log("DATA:", data);
return data;
} } }
unittest.js
describe("Test Cases", function (done) {
it('retrieve response', function (done) {
var req = {};
var res = {};
test2.getData(req, res);
// how would i retrieve value of data from test2.js so i can test
done();
});
});
如何从 unittest.js 中的 test2.js 中检索“数据”值
【问题讨论】:
-
@vitaly-t。请您建议我应该如何编写单元测试?
-
您应该问的正确问题 - 如何为异步库编写测试。这与 pg-promise 并不真正相关。同时,您可以查看 pg-promise tests 的示例,它们以库自身测试的方式。
-
奇怪的是你有一个异步函数,它只记录一个输出但什么都不做。如果输出到标准输出很重要,那么测试它,不要测试函数,因为函数没有返回任何内容,这使得它无法测试。我个人会将该特定测试编写为 bash 脚本,因为这是最简单的方法。如果您必须用 js 编写它,请按照编写 bash 脚本的方式编写它:执行脚本并 grep 它是标准输出。
-
@slebetman 我想测试值“数据”。我不知道如何将“数据”的值返回给 unitest.js
标签: javascript node.js unit-testing pg-promise