PHPUnit: use annotations for fixtures / cross-version compat up to PHPUnit 9.x - #16
Merged
grogy merged 1 commit intoMay 9, 2021
Conversation
…PUnit 9.x As of PHPUnit 8.x, the method signature for the `setUpBeforeClass()`, `setUp()`, `tearDown()` and `tearDownAfterClass()` fixture methods has changed to require the `void` return type. As the `void` return type isn't available until PHP 7.1, this cannot be implemented. Annotations to the rescue. By renaming the `setUp()` method to another, descriptive name and using the `@before` annotation, the tests can be made cross-version compatible up to PHPUnit 9.x. With this change, the unit tests can now be run on PHPUnit 4 - 9. As PHPUnit has a caching feature build in as of PHPUnit 8, we need to add the `.phpunit.result.cache` file to `.gitignore`. There is also one assertion which has changed, so using an if/else to work around that.
Member
|
Thank you |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As of PHPUnit 8.x, the method signature for the
setUpBeforeClass(),setUp(),tearDown()andtearDownAfterClass()fixture methods has changed to require thevoidreturn type.As the
voidreturn type isn't available until PHP 7.1, this cannot be implemented.Annotations to the rescue.
By renaming the
setUp()method to another, descriptive name and using the@beforeannotation, the tests can be made cross-version compatible up to PHPUnit 9.x.With this change, the unit tests can now be run on PHPUnit 4 - 9.
As PHPUnit has a caching feature build in as of PHPUnit 8, we need to add the
.phpunit.result.cachefile to.gitignore.There is also one assertion which has changed, so using an if/else to work around that.