zendframework / zend-container-config-test
Expressive PSR-11 container configuration tests
Installs: 1 417
Dependents: 6
Suggesters: 0
Security: 0
Stars: 1
Watchers: 11
Forks: 2
Open Issues: 0
Requires
- php: ^7.1
- psr/container: ^1.0
Requires (Dev)
- phpunit/phpunit: ^7.5.15 || ^8.3.4
- zendframework/zend-auradi-config: ^1.0.1
- zendframework/zend-coding-standard: ~1.0.0
- zendframework/zend-pimple-config: ^1.1
- zendframework/zend-servicemanager: ^3.3.2
This package is auto-updated.
Last update: 2020-01-20 19:21:33 UTC
README
Repository abandoned 2019-12-31
This repository has moved to laminas/laminas-container-config-test.
This library provides common tests for PSR-11 containers configured using a subset of zend-servicemanager configuration as specified by Expressive
It guarantees delivery of the same basic functionality across multiple PSR-11 container implementations, and simplifies switching between them.
Currently we support:
Installation
Run the following to install this library:
$ composer require --dev zendframework/zend-container-config-test
Using common tests
In your library, you will need to extend the
Zend\ContainerConfigTest\AbstractContainerTest
class within your test suite and
implement the method createContainer
:
protected function createContainer(array $config) : ContainerInterface;
It should return your PSR-11-compatible container, configured using $config
.
Then, depending on what functionality you'd like to support, you can add the following traits into your test case:
Zend\ContainerConfigTest\AliasTestTrait
- to supportaliases
configuration,Zend\ContainerConfigTest\DelegatorTestTrait
- to supportdelegators
configuration,Zend\ContainerConfigTest\FactoryTestTrait
- to supportfactories
configuration,Zend\ContainerConfigTest\InvokableTestTrait
- to supportinvokables
configuration,Zend\ContainerConfigTest\ServiceTestTrait
- to supportservices
configuration,Zend\ContainerConfigTest\SharedTestTrait
- to supportshared
andshared_by_default
configuration.
To provide an Expressive-compatible container, you should extend the class
Zend\ContainerConfigTest\AbstractExpressiveContainerConfigTest
and implement the method createContainer
. This class composes the following traits:
Zend\ContainerConfigTest\AliasTestTrait
,Zend\ContainerConfigTest\DelegatorTestTrait
,Zend\ContainerConfigTest\FactoryTestTrait
,Zend\ContainerConfigTest\InvokableTestTrait
,Zend\ContainerConfigTest\ServiceTestTrait
.
If you want also plan to support shared services, your test class should compose
the SharedTestTrait
as well:
use Zend\ContainerConfigTest\AbstractExpressiveContainerConfigTest; use Zend\ContainerConfigTest\SharedTestTrait; class ContainerTest extends AbstractExpressiveContainerConfigTest { use SharedTestTrait; protected function createContainer(array $config) : ContainerInterface { // your container configuration } }