Readonly properties are supposed to be set in constructor only but PHPUnit tests should not override the constructor, thus it is perfectly valid to set them in setUp() or setUpBeforeClass() methods.
Consider example:
class SubjectTest extends TestCase
{
protected readonly Subject $subject;
protected function setUp(): void
{
parent::setUp();
$this->subject = new Subject('test');
}
}
Triggers following error:
Readonly property App\Tests\SubjectTest::$subject is assigned outside of the constructor.
Readonly properties are supposed to be set in constructor only but PHPUnit tests should not override the constructor, thus it is perfectly valid to set them in
setUp()orsetUpBeforeClass()methods.Consider example:
Triggers following error: