PHPackages                             selective/test-traits - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. selective/test-traits

ActiveLibrary[Testing &amp; Quality](/categories/testing)

selective/test-traits
=====================

A collection of PHPUnit test traits

4.3.0(3mo ago)13342.6k↓29.6%45MITPHPPHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0CI passing

Since Jan 24Pushed 3mo ago3 watchersCompare

[ Source](https://github.com/selective-php/test-traits)[ Packagist](https://packagist.org/packages/selective/test-traits)[ Docs](https://github.com/selective-php/test-traits)[ RSS](/packages/selective-test-traits/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (14)Versions (19)Used By (5)

selective/test-traits
=====================

[](#selectivetest-traits)

A collection of PHPUnit test traits.

[![Latest Version on Packagist](https://camo.githubusercontent.com/efc64cfd861d8fe4cc5e21edc8b97dea8b6f2a79cbceaf3f878fdb92ab381ce2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f73656c6563746976652d7068702f746573742d7472616974732e737667)](https://packagist.org/packages/selective/test-traits)[![Software License](https://camo.githubusercontent.com/074b89bca64d3edc93a1db6c7e3b1636b874540ba91d66367c0e5e354c56d0ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)](LICENSE)[![Build Status](https://github.com/selective-php/test-traits/workflows/build/badge.svg)](https://github.com/selective-php/test-traits/actions)[![Total Downloads](https://camo.githubusercontent.com/a01373711c27212f161ec6f4b7dcb551371200daa571c144c400054eac31b679/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73656c6563746976652f746573742d7472616974732e737667)](https://packagist.org/packages/selective/test-traits/stats)

Requirements
------------

[](#requirements)

- PHP 8.2 - 8.5

Installation
------------

[](#installation)

```
composer require selective/test-traits --dev
```

Traits
------

[](#traits)

### MailerTestTrait

[](#mailertesttrait)

Requirements: `composer require symfony/mailer`

DI container setup example:

```
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\Mailer\EventListener\EnvelopeListener;
use Symfony\Component\Mailer\EventListener\MessageListener;
use Symfony\Component\Mailer\EventListener\MessageLoggerListener;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mailer\Transport;
use Symfony\Component\Mailer\Transport\TransportInterface;
// ...

return [
    // Mailer
    MailerInterface::class => function (ContainerInterface $container) {
        return new Mailer($container->get(TransportInterface::class));
    },

    // Mailer transport
    TransportInterface::class => function (ContainerInterface $container) {
        $settings = $container->get('settings')['smtp'];

        // smtp://user:pass@smtp.example.com:25
        $dsn = sprintf(
            '%s://%s:%s@%s:%s',
            $settings['type'],
            $settings['username'],
            $settings['password'],
            $settings['host'],
            $settings['port']
        );

        $eventDispatcher = $container->get(EventDispatcherInterface::class);

        return Transport::fromDsn($dsn, $eventDispatcher);
    },

    EventDispatcherInterface::class => function () {
        $eventDispatcher = new EventDispatcher();
        $eventDispatcher->addSubscriber(new MessageListener());
        $eventDispatcher->addSubscriber(new EnvelopeListener());
        $eventDispatcher->addSubscriber(new MessageLoggerListener());

        return $eventDispatcher;
    },

    // ...
],
```

**Usage**:

PHPUnit test case:

```
