rick645 Posted June 7 Share Posted June 7 https://docs.phpunit.de/en/11.1/writing-tests-for-phpunit.html#writing-tests-for-phpunit-output-examples-outputtest-php But it gives me an error //PHPUnit 11.1.3 by Sebastian Bergmann and contributors. //Runtime: PHP 8.3.6 //this->expectedOutputString() Error: Call to undefined method OutputTest::expectedOutputString() //parent::expectedOutputString() Error: Call to undefined method PHPUnit\Framework\TestCase::expectedOutputString() Why? Quote Link to comment Share on other sites More sharing options...
gizmola Posted June 7 Share Posted June 7 Maybe it's because the method is expectOutputString, not expectedOutputString. Quote Link to comment Share on other sites More sharing options...
rick645 Posted June 7 Author Share Posted June 7 OK!!! Allow me another question. https://www.w3resource.com/php/PHPUnit/writing-tests-for-phpunit-outputs.php methods setOutputCallback() and getActualOutput() are mentioned here, but they don't work for me Error: Call to undefined method PHPUnit\Framework\TestCase::setOutputCallback() Error: Call to undefined method PHPUnit\Framework\TestCase::getActualOutput() Why? Quote Link to comment Share on other sites More sharing options...
mac_gyver Posted June 7 Share Posted June 7 for your last two errors, here are some possibilities - you copy/pasted the code from the web where it was 'published' and it doesn't contain only ascii characters. see if deleting and retyping the line(s) of code corrects the problem. because these frameworks have their own error reporting, you may only be seeing a snippet of the actual error information. assuming your code is something like - $this->setOutputCallback(...), what does using var_dump($this); show? Quote Link to comment Share on other sites More sharing options...
rick645 Posted June 7 Author Share Posted June 7 (edited) $ cat MyTest.php <?php declare(strict_types=1); use PHPUnit\Framework\TestCase; final class MyTest extends TestCase { final public function testMy(): void { var_dump($this); $this->setOutputCallback(); $this->getActualOutput(); } } $ vendor/bin/phpunit MyTest.php PHPUnit 11.2.0 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.6 object(MyTest)#307 (41) { ["backupGlobals":"PHPUnit\Framework\TestCase":private]=> bool(false) ["backupGlobalsExcludeList":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["backupStaticProperties":"PHPUnit\Framework\TestCase":private]=> bool(false) ["backupStaticPropertiesExcludeList":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["snapshot":"PHPUnit\Framework\TestCase":private]=> NULL ["backupGlobalErrorHandlers":"PHPUnit\Framework\TestCase":private]=> array(1) { [0]=> object(PHPUnit\Runner\ErrorHandler)#220 (6) { ["baseline":"PHPUnit\Runner\ErrorHandler":private]=> NULL ["enabled":"PHPUnit\Runner\ErrorHandler":private]=> bool(true) ["originalErrorReportingLevel":"PHPUnit\Runner\ErrorHandler":private]=> int(32767) ["source":"PHPUnit\Runner\ErrorHandler":private]=> object(PHPUnit\TextUI\Configuration\Source)#64 (20) { ["baseline":"PHPUnit\TextUI\Configuration\Source":private]=> NULL ["ignoreBaseline":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["includeDirectories":"PHPUnit\TextUI\Configuration\Source":private]=> object(PHPUnit\TextUI\Configuration\FilterDirectoryCollection)#66 (1) { ["directories":"PHPUnit\TextUI\Configuration\FilterDirectoryCollection":private]=> array(0) { } } ["includeFiles":"PHPUnit\TextUI\Configuration\Source":private]=> object(PHPUnit\TextUI\Configuration\FileCollection)#39 (1) { ["files":"PHPUnit\TextUI\Configuration\FileCollection":private]=> array(0) { } } ["excludeDirectories":"PHPUnit\TextUI\Configuration\Source":private]=> object(PHPUnit\TextUI\Configuration\FilterDirectoryCollection)#40 (1) { ["directories":"PHPUnit\TextUI\Configuration\FilterDirectoryCollection":private]=> array(0) { } } ["excludeFiles":"PHPUnit\TextUI\Configuration\Source":private]=> object(PHPUnit\TextUI\Configuration\FileCollection)#41 (1) { ["files":"PHPUnit\TextUI\Configuration\FileCollection":private]=> array(0) { } } ["restrictDeprecations":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["restrictNotices":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["restrictWarnings":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSuppressionOfDeprecations":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSuppressionOfPhpDeprecations":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSuppressionOfErrors":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSuppressionOfNotices":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSuppressionOfPhpNotices":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSuppressionOfWarnings":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSuppressionOfPhpWarnings":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreSelfDeprecations":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreDirectDeprecations":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["ignoreIndirectDeprecations":"PHPUnit\TextUI\Configuration\Source":private]=> bool(false) ["deprecationTriggers":"PHPUnit\TextUI\Configuration\Source":private]=> array(2) { ["functions"]=> array(0) { } ["methods"]=> array(0) { } } } ["sourceFilter":"PHPUnit\Runner\ErrorHandler":private]=> object(PHPUnit\TextUI\Configuration\SourceFilter)#219 (0) { } ["deprecationTriggers":"PHPUnit\Runner\ErrorHandler":private]=> array(2) { ["functions"]=> array(0) { } ["methods"]=> array(0) { } } } } ["backupGlobalExceptionHandlers":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["runClassInSeparateProcess":"PHPUnit\Framework\TestCase":private]=> NULL ["runTestInSeparateProcess":"PHPUnit\Framework\TestCase":private]=> NULL ["preserveGlobalState":"PHPUnit\Framework\TestCase":private]=> bool(false) ["inIsolation":"PHPUnit\Framework\TestCase":private]=> bool(false) ["expectedException":"PHPUnit\Framework\TestCase":private]=> NULL ["expectedExceptionMessage":"PHPUnit\Framework\TestCase":private]=> NULL ["expectedExceptionMessageRegExp":"PHPUnit\Framework\TestCase":private]=> NULL ["expectedExceptionCode":"PHPUnit\Framework\TestCase":private]=> NULL ["providedTests":"PHPUnit\Framework\TestCase":private]=> array(1) { [0]=> object(PHPUnit\Framework\ExecutionOrderDependency)#302 (4) { ["className":"PHPUnit\Framework\ExecutionOrderDependency":private]=> string(6) "MyTest" ["methodName":"PHPUnit\Framework\ExecutionOrderDependency":private]=> string(6) "testMy" ["shallowClone":"PHPUnit\Framework\ExecutionOrderDependency":private]=> bool(false) ["deepClone":"PHPUnit\Framework\ExecutionOrderDependency":private]=> bool(false) } } ["data":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["dataName":"PHPUnit\Framework\TestCase":private]=> string(0) "" ["methodName":"PHPUnit\Framework\TestCase":private]=> string(6) "testMy" ["groups":"PHPUnit\Framework\TestCase":private]=> array(1) { [0]=> string(7) "default" } ["dependencies":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["dependencyInput":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["iniSettings":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["locale":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["mockObjects":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["status":"PHPUnit\Framework\TestCase":private]=> object(PHPUnit\Framework\TestStatus\Unknown)#298 (1) { ["message":"PHPUnit\Framework\TestStatus\TestStatus":private]=> string(0) "" } ["numberOfAssertionsPerformed":"PHPUnit\Framework\TestCase":private]=> int(0) ["testResult":"PHPUnit\Framework\TestCase":private]=> NULL ["output":"PHPUnit\Framework\TestCase":private]=> string(0) "" ["outputExpectedRegex":"PHPUnit\Framework\TestCase":private]=> NULL ["outputExpectedString":"PHPUnit\Framework\TestCase":private]=> NULL ["outputBufferingActive":"PHPUnit\Framework\TestCase":private]=> bool(true) ["outputBufferingLevel":"PHPUnit\Framework\TestCase":private]=> int(1) ["outputRetrievedForAssertion":"PHPUnit\Framework\TestCase":private]=> bool(false) ["doesNotPerformAssertions":"PHPUnit\Framework\TestCase":private]=> bool(false) ["customComparators":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["testValueObjectForEvents":"PHPUnit\Framework\TestCase":private]=> object(PHPUnit\Event\Code\TestMethod)#81 (7) { ["file":"PHPUnit\Event\Code\Test":private]=> string(15) "/app/MyTest.php" ["className":"PHPUnit\Event\Code\TestMethod":private]=> string(6) "MyTest" ["methodName":"PHPUnit\Event\Code\TestMethod":private]=> string(6) "testMy" ["line":"PHPUnit\Event\Code\TestMethod":private]=> int(8) ["testDox":"PHPUnit\Event\Code\TestMethod":private]=> object(PHPUnit\Event\Code\TestDox)#293 (3) { ["prettifiedClassName":"PHPUnit\Event\Code\TestDox":private]=> string(2) "My" ["prettifiedMethodName":"PHPUnit\Event\Code\TestDox":private]=> string(2) "My" ["prettifiedAndColorizedMethodName":"PHPUnit\Event\Code\TestDox":private]=> string(2) "My" } ["metadata":"PHPUnit\Event\Code\TestMethod":private]=> object(PHPUnit\Metadata\MetadataCollection)#297 (1) { ["metadata":"PHPUnit\Metadata\MetadataCollection":private]=> array(0) { } } ["testData":"PHPUnit\Event\Code\TestMethod":private]=> object(PHPUnit\Event\TestData\TestDataCollection)#292 (2) { ["data":"PHPUnit\Event\TestData\TestDataCollection":private]=> array(0) { } ["fromDataProvider":"PHPUnit\Event\TestData\TestDataCollection":private]=> NULL } } ["wasPrepared":"PHPUnit\Framework\TestCase":private]=> bool(true) ["failureTypes":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["expectedUserDeprecationMessage":"PHPUnit\Framework\TestCase":private]=> array(0) { } ["expectedUserDeprecationMessageRegularExpression":"PHPUnit\Framework\TestCase":private]=> array(0) { } } E 1 / 1 (100%) Time: 00:00.006, Memory: 6.00 MB There was 1 error: 1) MyTest::testMy Error: Call to undefined method MyTest::setOutputCallback() /app/MyTest.php:10 ERRORS! Tests: 1, Assertions: 0, Errors: 1. Edited June 7 by rick645 Quote Link to comment Share on other sites More sharing options...
gizmola Posted June 16 Share Posted June 16 This is most likely a BC break, because that method was available in phpunit 9, but was removed in phpunit version 10. 1 Quote Link to comment Share on other sites More sharing options...
Danishhafeez Posted June 27 Share Posted June 27 PHPUnit Version Compatibility: The method expectedOutputString() might not be available in the version of PHPUnit you are using (PHPUnit 11.1.3 in your case). PHPUnit evolves over time, and methods can be added, deprecated, or removed between versions. Incorrect Method Name: Double-check the method name expectedOutputString(). In some cases, method names can change slightly between versions or might be case-sensitive. Namespace or Scope Issue: Ensure that you are extending the correct class (PHPUnit\Framework\TestCase for PHPUnit tests) and that your test class is properly set up with the correct namespaces and inheritance. Here’s an example of how expectOutputString() is typically used in PHPUnit tests: use PHPUnit\Framework\TestCase; class OutputTest extends TestCase { public function testOutput() { $expectedOutput = "Expected output"; $this->expectOutputString($expectedOutput); // Perform actions that should produce the expected output echo $expectedOutput; } } Ensure that your test class extends PHPUnit\Framework\TestCase and that your PHPUnit installation is properly set up and accessible within your development environment. Best Regard Danish Hafeez | QA Assistant ICTInnovations Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.