Tag: pg copy

unit testing使用请求,pipe道和stream使用模拟的私有方法

我想在下面的代码中unit testing导出的方法。 我想嘲笑私有方法中的值来控制返回的Promise的拒绝/parsing。 client是已经连接到数据库的node-postgres对象。 我知道我可以使用proxyquire来取出所需的库,但我怎样才能模仿链接的方法.on('error', …) .pipe(stream)和.on('end', …)我可以控制返回的值。 注意 ,显示的导出方法是对真实导出方法的简化,导出importDomain是不可行的。 const copyFrom = require('pg-copy-streams').from const request = require('request') const Promise = require('bluebird') // private function importDomain (client, domain) { return new Promise((resolve, reject) => { let stream = client.query(copyFrom(`COPY ${domain.table} FROM STDIN;`)) let req = request(`${domain.url}`) req.on('error', reject) req.pipe(stream) .on('error', reject) .on('end', resolve) }) } […]