@@ -277,7 +277,7 @@ Testing a Command that Expects Input
277277------------------------------------
278278
279279If you want to write a unit test for a command which expects some kind of input
280- from the command line, you need to set thehelper input stream ::
280+ from the command line, you need to set theinputs that the command expects ::
281281
282282 use Symfony\Component\Console\Helper\QuestionHelper;
283283 use Symfony\Component\Console\Helper\HelperSet;
@@ -289,26 +289,28 @@ from the command line, you need to set the helper input stream::
289289 // ...
290290 $commandTester = new CommandTester($command);
291291
292- $helper = $command->getHelper('question');
293- $helper->setInputStream($this->getInputStream("Test\n"));
292+ $commandTester->setInputs(array('Test'));
294293 // Equals to a user inputting "Test" and hitting ENTER
295- // If you need to enter a confirmation, "yes\n" will work
294+
295+ // Equals to a user inputting "This", "That" and hitting ENTER
296+ // This can be used for answering two separated questions for instance.
297+ $commandTester->setInputs(array('This', 'That'));
298+
299+ // For simulating a positive answer to a confirmation question, adding an
300+ // additional input saying "yes" will work
301+ $commandTester->setInputs(array('yes'));
296302
297303 $commandTester->execute(array('command' => $command->getName()));
298304
299305 // $this->assertRegExp('/.../', $commandTester->getDisplay());
300306 }
301307
302- protected function getInputStream($input)
303- {
304- $stream = fopen('php://memory', 'r+', false);
305- fputs($stream, $input);
306- rewind($stream);
307-
308- return $stream;
309- }
308+ By calling:method: `Symfony\\ Component\\ Console\\ Tester\\ CommandTester::setInputs `,
309+ you imitate what the console would do internally with all user input through the CLI.
310+ This method takes an array as only argument with, for each input that the command expects,
311+ a string representing what the user would have typed.
312+ This way you can test any user interaction (even complex ones) by passing the appropriate inputs.
310313
311- By setting the input stream of the ``QuestionHelper ``, you imitate what the
312- console would do internally with all user input through the CLI. This way
313- you can test any user interaction (even complex ones) by passing an appropriate
314- input stream.
314+ ..note ::
315+ The:class: `Symfony\\ Component\\ Console\\ Tester\\ CommandTester ` automatically simulates a user
316+ hitting ``ENTER `` after each input, no need for passing an additional input.