gpt4 book ai didi

node.js - 使用 Jest 进行单元测试 Inquirer

转载 作者:太空宇宙 更新时间:2023-11-03 22:21:58 24 4
gpt4 key购买 nike

我一直在尝试了解搜索各种论坛,但无法找到我要查找的内容。部分原因是我对 NodeJS 的无知。我才刚刚开始。

我的任务是通过 Jest/Mocha 对基于查询器的 CLI 进行单元测试。我如何模拟和测试这个。

我的 cli.js 看起来像这样 -

var inquirer = require('inquirer');

var question = {
name: 'name',
message: 'Enter your name : '
};

inquirer
.prompt([question])
.then (function(response) {
console.log(JSON.stringify(response))
}
);

如果我只是要确保用户传递的值不能超过 10 个字符,我该如何为此编写测试。

有人可以指出我通过 Jest 进行的单元测试代码是什么(当然使用任何模拟包)。

预先感谢您的帮助!

最佳答案

Cli.js

const inquirer = require('inquirer');

const validateNameResponse = response => response.length <= 10;
const handleAnswers = answers = {
// whatever you want to do with answers
};

const question = {
type: 'input',
name: 'name',
message: 'Enter your name : ',
validate: validateNameResponse
};

inquirer
.prompt([question])
.then (handleAnswers);

module.exports = {
validateNameResponse,
};

Cli.unit.test.js(Cli.unit.test是同一目录中的同级文件)

const {
validateNameResponse,
} = require('./cli');
describe('cli', () => {

for(let i =0; i <= 10; i++;) {
it(`should have function validateNameResponse pass inputted name that is ${i} characters long`, () => {
const name='a'.repeat(i);
expect(validateNameResponse(name)).toBe(true)
});
}

it('should have function validateNameResponse fail inputted name that is more than 10 characters', () => {
const name = 'a'.repeat(11);
expect(validateNameResponse(name)).toBe(false);
});
});

关于node.js - 使用 Jest 进行单元测试 Inquirer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53463776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com