javascript - 如何测试查询器验证
问题描述
我已经看过关于如何为 Inquirer.js 编写单元测试的问题和答案?
我想测试我的验证是否正确。例如,如果我有:
const answer = await inquirer.prompt({
name: 'answer',
message: 'are you sure?'
type: 'input',
validate: async (input) => {
if (input !== 'y' || input !== 'n') {
return 'Incorrect asnwer';
}
return true;
}
});
我想运行一个可以运行的单元测试并验证如果我提供了blah
,验证将正确验证。我该如何为此编写测试?
解决方案
我会将验证移至单独的功能,并单独测试它。测试和代码看起来都会更清晰:
const confirmAnswerValidator = async (input) => {
if (input !== 'y' || input !== 'n') {
return 'Incorrect asnwer';
}
return true;
};
const answer = await inquirer.prompt({
name: 'answer',
message: 'are you sure?'
type: 'input',
validate: confirmAnswerValidator
});
然后在测试中
describe('Confirm answer validator', () => {
it('Raises an error on "blah"', async () => {
const result = await confirmAnswerValidator('blah');
expect(result).toBe('Incorrect asnwer');
});
});
推荐阅读
- php - 我可以编辑 Amelia wordpress 预订系统以在不预订的情况下创建新客户吗?
- discord - 有没有办法在 Discord 中获取某人的电子邮件?重要的
- javascript - Nodejs 中的类验证器
- python - docker 没有检测到窗口句柄来搜索和选择文件
- graphviz - conda install python-graphviz:卡在求解环境
- python - 如果两个单独的列匹配,Pandas 在当前索引中返回单独的列值
- reactjs - 用于 ReactJS 中的无路由组件的 useParams()
- vuejs3 - 如何在 Quasar 中的选项组上放置工具提示?
- reactjs - 如何与 Service Worker 一起在本地发展?
- ssl - 当使用“tls-alpn-01”挑战让我们使用 traefik 加密 kubernetes 中的证书时,我得到“acme:错误:连接期间 400 超时”