因此,我正在尝试测试其中具有的功能:
这是使用 wkhtmltopdf
从 HTML 生成 PDF 的基本代码cert.js
// all required imports
const cert = express.Router()
cert.get('/hello', async (req, res) => {
const compiledHtml = '<h1>Hello world</h1>';
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-disposition':
'attachment;filename=hello.pdf',
})
return wkhtmltopdf(compiledHtml, {
disableSmartShrinking: true,
pageSize: 'Letter',
orientation: 'Landscape'
}).pipe(res);
}); // closing of the the 'cert.get' with async callback
考虑到我对 / hello 的REST调用,可以生成 hello.pdf 作为以下内容的响应(二进制文件):
我应该如何在不生成实际PDF的情况下进行测试,我希望可以使用 .pipe 模拟 wkhtmltopdf 调用,以便在测试时进行模拟不会生成实际的 wkhtmltopdf ,而是调用模拟的模块,并且我可以测试它是否显示 toHaveBeenCalled 或 toHaveBeenCalledTimes(1)
预先感谢, 快乐编码 :)