diff --git a/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php b/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php
index 9f581f21cfedebfde2e5c7e5d1368cb8a20c31c0..203e6c516100552052d16d060b8d9024a1cad9f1 100644
--- a/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php
+++ b/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php
@@ -17,22 +17,17 @@ declare(strict_types=1);
 
 namespace TYPO3\CMS\Core\Tests\Unit\ExpressionLanguage;
 
-use Prophecy\Argument;
 use Prophecy\PhpUnit\ProphecyTrait;
 use Symfony\Component\ExpressionLanguage\ExpressionFunction;
-use TYPO3\CMS\Core\Cache\Frontend\PhpFrontend;
+use TYPO3\CMS\Core\Cache\Frontend\NullFrontend;
 use TYPO3\CMS\Core\ExpressionLanguage\DefaultProvider;
 use TYPO3\CMS\Core\ExpressionLanguage\FunctionsProvider\DefaultFunctionsProvider;
 use TYPO3\CMS\Core\ExpressionLanguage\ProviderConfigurationLoader;
 use TYPO3\CMS\Core\ExpressionLanguage\Resolver;
-use TYPO3\CMS\Core\Package\PackageInterface;
-use TYPO3\CMS\Core\Package\PackageManager;
+use TYPO3\CMS\Core\Tests\Unit\Utility\AccessibleProxies\ExtensionManagementUtilityAccessibleProxy;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
-/**
- * Class ResolverTest
- */
 class ResolverTest extends UnitTestCase
 {
     use ProphecyTrait;
@@ -40,28 +35,19 @@ class ResolverTest extends UnitTestCase
     public function setUp(): void
     {
         parent::setUp();
-
-        $cacheFrontendProphecy = $this->prophesize(PhpFrontend::class);
-        $cacheFrontendProphecy->require(Argument::any())->willReturn(false);
-        $cacheFrontendProphecy->set(Argument::any(), Argument::any())->willReturn(null);
-
-        $packageManagerProphecy = $this->prophesize(PackageManager::class);
-        $corePackageProphecy = $this->prophesize(PackageInterface::class);
-        $corePackageProphecy->getPackagePath()->willReturn(__DIR__ . '/../../../../../../../sysext/core/');
-        $packageManagerProphecy->getActivePackages()->willReturn([
-            $corePackageProphecy->reveal(),
-        ]);
-
         GeneralUtility::addInstance(ProviderConfigurationLoader::class, new ProviderConfigurationLoader(
-            $packageManagerProphecy->reveal(),
-            $cacheFrontendProphecy->reveal(),
+            ExtensionManagementUtilityAccessibleProxy::getPackageManager(),
+            new NullFrontend('test'),
             'ExpressionLanguageProviders'
         ));
     }
 
-    /**
-     * @return array
-     */
+    public function tearDown(): void
+    {
+        GeneralUtility::purgeInstances();
+        parent::tearDown();
+    }
+
     public function basicExpressionsDataHandler(): array
     {
         return [
@@ -78,18 +64,13 @@ class ResolverTest extends UnitTestCase
     /**
      * @test
      * @dataProvider basicExpressionsDataHandler
-     * @param string $expression
-     * @param mixed $expectedResult
      */
-    public function basicExpressionHandlingResultsWorksAsExpected(string $expression, $expectedResult): void
+    public function basicExpressionHandlingResultsWorksAsExpected(string $expression, bool $expectedResult): void
     {
         $expressionLanguageResolver = new Resolver('default', []);
         self::assertSame($expectedResult, $expressionLanguageResolver->evaluate($expression));
     }
 
-    /**
-     * @return array
-     */
     public function basicExpressionsWithVariablesDataHandler(): array
     {
         return [
@@ -106,20 +87,18 @@ class ResolverTest extends UnitTestCase
     /**
      * @test
      * @dataProvider basicExpressionsWithVariablesDataHandler
-     * @param string $expression
-     * @param mixed $expectedResult
      */
-    public function basicExpressionHandlingWithCustomVariablesWorksAsExpected(string $expression, $expectedResult): void
+    public function basicExpressionHandlingWithCustomVariablesWorksAsExpected(string $expression, bool $expectedResult): void
     {
-        $contextProphecy = $this->prophesize(DefaultProvider::class);
-        $contextProphecy->getExpressionLanguageProviders()->willReturn([]);
-        $contextProphecy->getExpressionLanguageVariables()->willReturn([
+        $contextMock = $this->createMock(DefaultProvider::class);
+        $contextMock->method('getExpressionLanguageProviders')->willReturn([]);
+        $contextMock->method('getExpressionLanguageVariables')->willReturn([
             'var1' => '1',
             'var2' => '2',
             'varTrue' => true,
             'varFalse' => false,
          ]);
-        GeneralUtility::addInstance(DefaultProvider::class, $contextProphecy->reveal());
+        GeneralUtility::addInstance(DefaultProvider::class, $contextMock);
         $expressionLanguageResolver = new Resolver('default', []);
         self::assertSame($expectedResult, $expressionLanguageResolver->evaluate($expression));
     }
@@ -145,22 +124,22 @@ class ResolverTest extends UnitTestCase
      */
     public function basicExpressionHandlingWithCustomVariablesAndExpressionLanguageProviderWorksAsExpected(string $expression, $expectedResult): void
     {
-        $expressionProvider = $this->prophesize(DefaultFunctionsProvider::class);
-        $expressionProvider->getFunctions()->willReturn([
+        $expressionProviderMock = $this->createMock(DefaultFunctionsProvider::class);
+        $expressionProviderMock->method('getFunctions')->willReturn([
             new ExpressionFunction('testMeLowercase', static function ($str) {
                 return sprintf('(is_string(%1$s) ? strtolower(%1$s) : %1$s)', $str);
             }, static function ($arguments, $str) {
                 return is_string($str) ? strtolower($str) : $str;
             }),
         ]);
-        $contextProphecy = $this->prophesize(DefaultProvider::class);
-        $contextProphecy->getExpressionLanguageProviders()->willReturn([DefaultFunctionsProvider::class]);
-        $contextProphecy->getExpressionLanguageVariables()->willReturn([
+        $contextMock = $this->createMock(DefaultProvider::class);
+        $contextMock->method('getExpressionLanguageProviders')->willReturn([DefaultFunctionsProvider::class]);
+        $contextMock->method('getExpressionLanguageVariables')->willReturn([
             'var1' => 'FOO',
             'var2' => 'foo',
          ]);
-        GeneralUtility::addInstance(DefaultProvider::class, $contextProphecy->reveal());
-        GeneralUtility::addInstance(DefaultFunctionsProvider::class, $expressionProvider->reveal());
+        GeneralUtility::addInstance(DefaultProvider::class, $contextMock);
+        GeneralUtility::addInstance(DefaultFunctionsProvider::class, $expressionProviderMock);
         $expressionLanguageResolver = new Resolver('default', []);
         self::assertSame($expectedResult, $expressionLanguageResolver->evaluate($expression));
     }