【发布时间】:2019-11-10 16:28:27
【问题描述】:
我创建了一个命令行界面,它可以对 Google 图书进行 API 调用,并允许用户使用关键字搜索图书。搜索返回包含五本书的列表,其中包括可用于将记录保存到阅读列表(写入本地文件)的书籍 ID。
我想创建一些集成测试,但我不确定如何使用我设置的 bin 文件“调用”程序。最终我想测试用户输入是否会导致程序的正确响应,但我需要测试的第一件事是初始命令运行程序。
非常感谢任何帮助!
package.json
{
...
"bin": {
"books-cli": "bin/books-cli"
},
...
}
bin/books-cli
#!/usr/bin/env node
require('../')()
index.js
module.exports = () => {
const args = minimist(process.argv.slice(2));
let command = args._[0] || 'help';
if (args.help || args.h) {
command = 'help';
}
if (args.version || args.v) {
command = 'version';
}
switch (command) {
case 'search':
require('./commands/search')(args);
break;
case 'save':
require('./commands/save')(args);
break;
case 'list':
require('./commands/list')(args);
break;
case 'help':
require('./commands/help')(args);
break;
case 'version':
require('./commands/version')(args);
break;
default:
console.error(
`Sorry, "${command}" is not a valid command. Please type 'books-cli help' to see the help menu.`
);
break;
}
};
【问题讨论】:
标签: javascript jestjs command-line-interface integration-testing