This repository was archived by the owner on Jan 29, 2020. It is now read-only.
Allow full, unfettered usage across all PHPUnit versions - #48
Merged
weierophinney merged 3 commits intoMay 1, 2017
Conversation
- Adds `class_alias` directives to a new file, `autoload/phpunit-class-aliases.php`, which aliases the non-namespaced versions of both `TestCase` and `ExpectationFailedException` to the namespaced variants, allowing usage of the namespaced variants throughout all source code and tests. - Adds logic to `assertApplicationException()` to detect if pre-6.0 versions of PHPUnit are in use, and, if so, uses `setExpectedException()`; if not, uses `expectException()`, and optionally `expectExceptionMessage()`. - Adds a trait to the test suite, `ZendTest\Test\ExpectedExceptionTrait`, with the method `expectedException()`. It uses the `setExpectedException()` signature, and then, based on the version of PHPUnit detected, proxies either to `setExpectedException()` or `expectException()` + optionally `expectExceptionMessage()`.
froschdesign
approved these changes
May 1, 2017
- Ensure that PHPUnit 5 is installed for PHP 5.6 locked/latest versions - Ensure that coverage is generated when necessary - Consistency with other repos
Member
Author
|
I've done the following with a skeleton application (which includes several controller unit tests):
I did the above using the current develop branch as well, to confirm that it was not working. Under PHPUnit 6, tests errored due to missing As such, I think this is ready! |
weierophinney
added a commit
that referenced
this pull request
May 1, 2017
weierophinney
added a commit
that referenced
this pull request
May 1, 2017
This was referenced May 1, 2017
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
In reviewing #40 after-the-fact, I found a number of issues:
class_aliasto each test case in the test suite is problematic. These should be accomplished via an autoloader file.Zend\Testnamespace were using class names that were pre-6.0 versions of PHPUnit, which meant they still could not be used under that version.setExpectedException()method, which was deprecated in the PHPUnit 5.7 series and removed in PHPUnit 6.This patch does the following to fix these issues:
class_aliasdirectives to a new file,autoload/phpunit-class-aliases.php, which aliases the non-namespaced versions of bothTestCaseandExpectationFailedExceptionto the namespaced variants, allowing usage of the namespaced variants throughout all source code and tests.assertApplicationException()to detect if pre-6.0 versions of PHPUnit are in use, and, if so, usessetExpectedException(); if not, usesexpectException(), and optionallyexpectExceptionMessage().ZendTest\Test\ExpectedExceptionTrait, with the methodexpectedException(). It uses thesetExpectedException()signature, and then, based on the version of PHPUnit detected, proxies either tosetExpectedException()orexpectException()+ optionallyexpectExceptionMessage().TODO