使用 tap 测试 console.log 的输出

Use tap to test the output of a console.log

我有一个非常基本的脚本,我希望能够使用 node-tap 添加覆盖范围:

const chalk = require('chalk')

module.exports = skip = type => console.log(chalk.blue(`Skipping generation of ${type} due to user selection`))

它所做的只是向用户显示 console.log 消息(这是一个命令行应用程序)。

我已经为它编写了以下点击测试:

// test/hello-world.js
const t = require('tap')

const skip = require('../scripts/skip')

t.test('skip() Returns the expected console message', async t => {
    t.equal(skip('test'), "Skipping generation of test due to user selection`")
    t.end()
})

但显然失败了,因为我没有返回该消息,我返回了 console.log。那么我该如何测试呢?

检查这个https://node-tap.org/docs/api/snapshot-testing/

应该可以解决你的问题