testing-framework icon indicating copy to clipboard operation
testing-framework copied to clipboard

[TASK] Reset `GeneralUtility::$container` in `UnitTestCase::tearDown()`

Open sbuerk opened this issue 8 months ago • 0 comments

It could be possible that unit tests sets dependency injection container calling GeneralUtility::setContainer() to provide service instances or mocked service instances specific bound to that test, keeping a dirty state for following unit tests.

Executing unit tests in other orders, only as a subset or for example randomized can reveal these pullation and eventualy wrong expectation for other tests. [1]

This change adds a automatic cleanup to the tearDown for unit tests ensuring a clean state, because there isn't a easy way to reset that within tests without using native php reflection API. So do it in a general place.

It may be possible to let the specific test setting such a container intance to fail with the recommendation to refactor the test into a functional test, but is left out for now.

[1] https://review.typo3.org/c/Packages/TYPO3.CMS/+/88839

Releases: main, 8, 7

sbuerk avatar Apr 27 '25 15:04 sbuerk