@@ -555,6 +555,46 @@ call ``setAutoExit(false)`` on it to get the command result in ``CommandTester``
555555 You can also test a whole console application by using
556556 :class: `Symfony\\ Component\\ Console\\ Tester\\ ApplicationTester `.
557557
558+ Here an example of a test using this class::
559+
560+ use Symfony\Bundle\FrameworkBundle\Console\Application;
561+ use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
562+ use Symfony\Component\Console\Tester\ApplicationTester;
563+ use Symfony\Component\Console\Tester\CommandTester;
564+
565+ class WelcomeCommandTest extends KernelTestCase
566+ {
567+ public function testPerson(): void
568+ {
569+ self::bootKernel();
570+ $application = new Application(self::$kernel);
571+ $application->setAutoExit(false);
572+
573+ $applicationTester = new ApplicationTester($application);
574+
575+ $input = [
576+ // Pass the command name
577+ 'command' => 'app:welcome-person',
578+
579+ // Pass the different arguments
580+ 'firstName' => 'Michael',
581+ 'lastName' => 'Jackson',
582+ 'hobbies' => ['singing', 'dancing']
583+ ];
584+
585+ // Call run to launch the application
586+ $applicationTester->run($input);
587+
588+ $applicationTester->assertCommandIsSuccessful();
589+
590+ $output = $applicationTester->getDisplay();
591+
592+ // Here $output value is "The person is Michael Jackson and his hobbies are the following singing and dancing."
593+ $this->assertStringContainsString('Michael Jackson', $output);
594+ $this->assertStringContainsString('singing and dancing', $output);
595+ }
596+ }
597+
558598.. caution ::
559599
560600 When testing commands using the ``CommandTester `` class, console events are
@@ -566,7 +606,7 @@ call ``setAutoExit(false)`` on it to get the command result in ``CommandTester``
566606 When testing commands using the :class: `Symfony\\ Component\\ Console\\ Tester\\ ApplicationTester `
567607 class, don't forget to disable the auto exit flag::
568608
569- $application = new Application();
609+ $application = new Application(self::$kernel );
570610 $application->setAutoExit(false);
571611
572612 $tester = new ApplicationTester($application);
0 commit comments