NodeJS пишите в stdin в шутливых тестах - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть приложение командной строки, которое читает пользовательский ввод из stdin:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
});

rl.on('line', (line) => {
  doSomething();
});

Чтобы писать интеграционные тесты, мне нужно иметь возможность писать в stdin, чтобы активировать 'line'событие.Однако вызов process.stdin.write(`abc${os.EOL}`) в моем тестовом случае приводит к ошибке (поскольку поток является однонаправленным только для чтения):

Этот сокет закрыт

Как мне разрешитьthis?

Является ли единственным вариантом пропустить тестирование интеграции командной строки и проверить только doSomething?

...