Javascript CLI:如何调用bin文件,以便可以通过Jest运行集成测试

问题描述 投票:1回答:1

我创建了一个命令行界面,该界面对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
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.