fhteam/laravel-phpunit

A bunch of Laravel PHPUnit helpers

v1.1 2018-01-21 09:30 UTC

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 created
  • afterAppHiddenMembersTestTrait(Application $app) - right after Laravel application is created, but before leaving phpUnit setUp() 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 object
  • assertMembersSame. This is variant of the above, which tests for sameness instead of equality
  • getObjectProperties. Just returns an array of object's requested properties with their values (disregarding visibility)
  • getMethodCallResult. Returns a result of the method call (disregarding visibility)