phpunit-injector
phpunit-architecture-test
phpunit-injector | phpunit-architecture-test | |
---|---|---|
1 | 1 | |
61 | 69 | |
- | - | |
4.0 | 7.1 | |
3 months ago | 4 months ago | |
PHP | PHP | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
phpunit-injector
-
Testing with immutable PSR-7 objects and Prophecy
This unit test will fail when ran against the implementation from earlier. And in this situation a failing test is a good thing. But for this specific situation another "issue" has made it's way into the testcase; the unit test is now depending on the implementation that is being used for PSR-7. When working in a large codebase - like I currently am - one might have more than just a few usages of these interfaces and thus unit tests. Using the suggested approach, instantiating value objects instead of prophesizing, will lead to a large amount of object instantiations. And this will make switching to another implementation more work. Ideally this instantiating is centralized as much as possible. This is exactly why PSR-17 - HTTP Factories - was introduced. Typically dependencies - like these factories - are injected. For unit tests this is not feasible without plugins. My solution is a bit less fancy; a trait:
phpunit-architecture-test
What are some alternatives?
doctrine-test-bundle - Symfony bundle to isolate your app's doctrine database tests and improve the test performance
phparch
Symfony DI - Allows you to standardize and centralize the way objects are constructed in your application
php-ddd-example - 🐘🎯 Hexagonal Architecture + DDD + CQRS in PHP using Symfony 6
Mockery - Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL).
Prophecy - Highly opinionated mocking framework for PHP 5.3+
BrainMonkey - Mocking utility for PHP functions and WordPress plugin API