fhteam / laravel-phpunit
A bunch of Laravel PHPUnit helpers
Requires
- php: >=5.5.0
- symfony/css-selector: 3.1.*
- symfony/dom-crawler: 3.1.*
Requires (Dev)
- laravel/framework: ~5.0
- phpunit/phpunit: 4.3.*
- squizlabs/php_codesniffer: 1.*
This package is not auto-updated.
Last update: 2024-11-12 10:39:30 UTC
README
This small library contains some helpers for phpUnit.
Base features
TestBase class contains the following features:
- Setup application type you need to use when testing via
$appContract
property - Setup bootstrap file path you need to use when testing via
$bootstrapPath
property - Ability to use self-configuring traits
Self-configuring traits
Base test class allows you to use automatically configuring traits. It works in the following way:
When test setUp method is called, traits are initialized first. If a trait has any special methods, they are called at
the appropriate time. Suppose your test uses trait named HiddenMembersTestTrait
. Then the following trait methods
will be called on the test class instance:
beforeAppHiddenMembersTestTrait()
- before Laravel application is createdafterAppHiddenMembersTestTrait(Application $app)
- right after Laravel application is created, but before leaving phpUnitsetUp()
method
Testing private and protected members of your classes
WARNING: Testing an object's protected or private properties / methods is generally a bad idea. Use with caution.
If you need to test private or protected test members of your class, you can use HiddenMembersTestTrait in your test classes. It adds the following methods:
assertMembersEqual
. This method accepts an object and an associative array of object's expected property values and tests if all of the given expected property values equal to those of the objectassertMembersSame
. This is variant of the above, which tests for sameness instead of equalitygetObjectProperties
. Just returns an array of object's requested properties with their values (disregarding visibility)getMethodCallResult
. Returns a result of the method call (disregarding visibility)