diff --git a/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php b/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php
index 542349f0a91a8b456b4d64df9dbd1256adefbd86..e2e06e4d31ccdd8ba738c382e192944bf702ba21 100644
--- a/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php
+++ b/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php
@@ -17,8 +17,6 @@ declare(strict_types=1);
 
 namespace TYPO3\CMS\Core\Tests\Unit\Mail\Event;
 
-use Prophecy\Argument;
-use Prophecy\PhpUnit\ProphecyTrait;
 use Symfony\Component\Mailer\Transport\SendmailTransport;
 use TYPO3\CMS\Core\Mail\Event\AfterMailerSentMessageEvent;
 use TYPO3\CMS\Core\Mail\Mailer;
@@ -28,17 +26,15 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
 class AfterMailerSentMessageEventTest extends UnitTestCase
 {
-    use ProphecyTrait;
-
     protected bool $resetSingletonInstances = true;
 
     protected function setUp(): void
     {
         parent::setUp();
 
-        $transportFactory = $this->prophesize(TransportFactory::class);
-        $transportFactory->get(Argument::any())->willReturn($this->prophesize(SendmailTransport::class));
-        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory->reveal());
+        $transportFactory = $this->createMock(TransportFactory::class);
+        $transportFactory->method('get')->with(self::anything())->willReturn($this->createMock(SendmailTransport::class));
+        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory);
     }
 
     /**
diff --git a/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php b/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php
index a7af6d47fb0c6122ec9b88f6c951a0130c406969..d64139c27773e1c54cfe62858c7019fda75ae735 100644
--- a/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php
+++ b/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php
@@ -17,8 +17,6 @@ declare(strict_types=1);
 
 namespace TYPO3\CMS\Core\Tests\Unit\Mail\Event;
 
-use Prophecy\Argument;
-use Prophecy\PhpUnit\ProphecyTrait;
 use Symfony\Component\Mailer\Envelope;
 use Symfony\Component\Mailer\Transport\SendmailTransport;
 use Symfony\Component\Mime\Address;
@@ -31,17 +29,15 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
 class BeforeMailerSentMessageEventTest extends UnitTestCase
 {
-    use ProphecyTrait;
-
     protected bool $resetSingletonInstances = true;
 
     protected function setUp(): void
     {
         parent::setUp();
 
-        $transportFactory = $this->prophesize(TransportFactory::class);
-        $transportFactory->get(Argument::any())->willReturn($this->prophesize(SendmailTransport::class));
-        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory->reveal());
+        $transportFactory = $this->createMock(TransportFactory::class);
+        $transportFactory->method('get')->with(self::anything())->willReturn($this->createMock(SendmailTransport::class));
+        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory);
     }
 
     /**
diff --git a/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php b/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php
index 1653dc0a95defec91cac2168f4f7af67eb082f4a..b49cc7939c33180cdf65fa069edc98616cabfa63 100644
--- a/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php
+++ b/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php
@@ -17,8 +17,6 @@ declare(strict_types=1);
 
 namespace TYPO3\CMS\Core\Tests\Unit\Mail;
 
-use Prophecy\Argument;
-use Prophecy\PhpUnit\ProphecyTrait;
 use Psr\Log\LoggerInterface;
 use Psr\Log\NullLogger;
 use Symfony\Component\Mailer\Transport\NullTransport;
@@ -36,8 +34,6 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
 class MailerTest extends UnitTestCase
 {
-    use ProphecyTrait;
-
     protected bool $resetSingletonInstances = true;
 
     protected $subject;
@@ -73,13 +69,12 @@ class MailerTest extends UnitTestCase
         $settings = ['transport' => 'mbox', 'transport_mbox_file' => '/path/to/file'];
         $GLOBALS['TYPO3_CONF_VARS']['MAIL'] = ['transport' => 'sendmail', 'transport_sendmail_command' => 'sendmail -bs'];
 
-        $transportFactory = $this->prophesize(TransportFactory::class);
-        $transportFactory->get(Argument::any())->willReturn($this->prophesize(SendmailTransport::class));
-        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory->reveal());
+        $transportFactory = $this->createMock(TransportFactory::class);
+        $transportFactory->expects(self::atLeastOnce())->method('get')->with($settings)
+            ->willReturn($this->createMock(SendmailTransport::class));
+        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory);
         $this->subject->injectMailSettings($settings);
         $this->subject->__construct();
-
-        $transportFactory->get($settings)->shouldHaveBeenCalled();
     }
 
     /**
@@ -89,13 +84,12 @@ class MailerTest extends UnitTestCase
     {
         $settings = ($GLOBALS['TYPO3_CONF_VARS']['MAIL'] = ['transport' => 'sendmail', 'transport_sendmail_command' => 'sendmail -bs']);
 
-        $transportFactory = $this->prophesize(TransportFactory::class);
-        $transportFactory->get(Argument::any())->willReturn($this->prophesize(SendmailTransport::class));
-        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory->reveal());
+        $transportFactory = $this->createMock(TransportFactory::class);
+        $transportFactory->expects(self::atLeastOnce())->method('get')->with($settings)
+            ->willReturn($this->createMock(SendmailTransport::class));
+        GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory);
         $this->subject->injectMailSettings($settings);
         $this->subject->__construct();
-
-        $transportFactory->get($settings)->shouldHaveBeenCalled();
     }
 
     public static function wrongConfigurationProvider(): array
diff --git a/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php b/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php
index aa63d4935bb13fa9e9297b5b823e0793f597f63e..12442998063c648b2cabe9cd364c2e19732149c7 100644
--- a/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php
+++ b/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php
@@ -17,9 +17,7 @@ declare(strict_types=1);
 
 namespace TYPO3\CMS\Core\Tests\Unit\Mail;
 
-use Prophecy\Argument;
-use Prophecy\PhpUnit\ProphecyTrait;
-use Psr\Log\LoggerInterface;
+use Psr\Log\NullLogger;
 use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
 use Symfony\Component\Mailer\Transport\NullTransport;
 use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;
@@ -40,23 +38,18 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
 class TransportFactoryTest extends UnitTestCase
 {
-    use ProphecyTrait;
-
     protected bool $resetSingletonInstances = true;
 
     protected function getSubject(&$eventDispatcher): TransportFactory
     {
-        $eventDispatcher = $this->prophesize(EventDispatcherInterface::class);
-        $eventDispatcher->dispatch(Argument::any())->willReturn(Argument::any());
-
-        $logger = $this->prophesize(LoggerInterface::class);
+        $eventDispatcher = $this->createMock(EventDispatcherInterface::class);
+        $logger = new NullLogger();
 
-        $logManager = $this->prophesize(LogManagerInterface::class);
-        $logManager->getLogger(Argument::any())->willReturn($logger->reveal());
-        $logManager->getLogger()->willReturn($logger->reveal());
+        $logManager = $this->createMock(LogManagerInterface::class);
+        $logManager->method('getLogger')->willReturn($logger);
 
-        $transportFactory = new TransportFactory($eventDispatcher->reveal(), $logManager->reveal());
-        $transportFactory->setLogger($logger->reveal());
+        $transportFactory = new TransportFactory($eventDispatcher, $logManager);
+        $transportFactory->setLogger($logger);
 
         return $transportFactory;
     }
@@ -210,6 +203,8 @@ class TransportFactoryTest extends UnitTestCase
         ];
 
         $transport = $this->getSubject($eventDispatcher)->get($mailSettings);
+        $eventDispatcher->expects(self::once())->method('dispatch')->with(self::anything());
+
         $message = new MailMessage();
         $message->setTo(['foo@bar.com'])
             ->text('foo')
@@ -220,8 +215,6 @@ class TransportFactoryTest extends UnitTestCase
         } catch (TransportExceptionInterface $exception) {
             // connection is not valid in tests, so we just catch the exception here.
         }
-
-        $eventDispatcher->dispatch(Argument::any())->shouldHaveBeenCalledOnce();
     }
 
     /**
@@ -273,6 +266,7 @@ class TransportFactoryTest extends UnitTestCase
         ];
 
         $transport = $this->getSubject($eventDispatcher)->get($mailSettings);
+        $eventDispatcher->expects(self::once())->method('dispatch')->with(self::anything());
 
         $message = new MailMessage();
         $message->setTo(['foo@bar.com'])
@@ -284,8 +278,6 @@ class TransportFactoryTest extends UnitTestCase
         } catch (TransportExceptionInterface $exception) {
             // connection is not valid in tests, so we just catch the exception here.
         }
-
-        $eventDispatcher->dispatch(Argument::any())->shouldHaveBeenCalledOnce();
     }
 
     /**
@@ -310,6 +302,8 @@ class TransportFactoryTest extends UnitTestCase
         ];
 
         $transport = $this->getSubject($eventDispatcher)->get($mailSettings);
+        $eventDispatcher->expects(self::once())->method('dispatch')->with(self::anything());
+
         $message = new MailMessage();
         $message->setTo(['foo@bar.com'])
             ->text('foo')
@@ -320,8 +314,6 @@ class TransportFactoryTest extends UnitTestCase
         } catch (TransportExceptionInterface $exception) {
             // connection is not valid in tests, so we just catch the exception here.
         }
-
-        $eventDispatcher->dispatch(Argument::any())->shouldHaveBeenCalledOnce();
     }
 
     /**
@@ -346,14 +338,14 @@ class TransportFactoryTest extends UnitTestCase
         ];
 
         $transport = $this->getSubject($eventDispatcher)->get($mailSettings);
+        $eventDispatcher->expects(self::once())->method('dispatch')->with(self::anything());
+
         $message = new MailMessage();
         $message->setTo(['foo@bar.com'])
             ->text('foo')
             ->from('bar@foo.com')
         ;
         $transport->send($message);
-
-        $eventDispatcher->dispatch(Argument::any())->shouldHaveBeenCalledOnce();
     }
 
     /**