Download the PHP package erikgall/eloquent-phpunit without Composer
On this page you can find all versions of the php package erikgall/eloquent-phpunit. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download erikgall/eloquent-phpunit
More information about erikgall/eloquent-phpunit
Files in erikgall/eloquent-phpunit
Package eloquent-phpunit
Short Description Test Eloquent models, database schemas & tables, relationships/foreign keys using PHPUnit.
License MIT
Informations about the package eloquent-phpunit
Eloquent PHPUnit
Test your Laravel Eloquent model's and database schema
This package was inspired by the Ruby on Rails world and the testing framework RSpec. The Ruby on Rails community (for the most part) write tests for their models in a way that they check the model's attributes, relationships, database table and columns settings (defaults, nullable, etc.).
Table of Contents
- What can be tested
- Installation
- Requirements
- Documentation
- Properties
- Table Testing Methods
- Model Testing Methods
- Example Model Test Class
- Contributing
- Version Release History
- Projects using Eloquent-PHPUnit
- Author
- License
What can be tested
- Casted attribute array
- Fillable attribute array
- Hidden attribute array
- Dates attribute array
- Relationship methods
You can also test your database tables such as:
- Table exists
- Table column exists
- Table column type (string, text, date, datetime, boolean, etc.).
- Column default value
- Null/Not Null
- Auto-incremented primary keys.
- Table indexes
- Unique indexes
- Foreign Key relationships
Installation
-
The easiest way to use/install this package is by using composer in your terminal:
- Or you can add the following line to your
require-dev
dependencies in yourcomposer.json
file
Requirements
This package requires PHP 5.6
or PHP 7+
. It has been tested and used with Laravel 5.2
and Laravel 5.3
. There should not be a problem using it with Laravel 5.0/1
but it has not been tested or confirmed 100%.
Documentation
Test Class Properties
Name | Type | Required | Default | Description |
---|---|---|---|---|
defaultSeeder | string | false | DatabaseSeeder | The database seeder class name that calls the rest of your seeders (only used if seedDatabase property is not set to false). |
data | array | false | - | Do not overwrite this property. It is used to store the model's data. You can access this data by calling any of the data array's keys like a class property ($this->fillable, $this->casts, $this->table) |
model | string | true | - | The FQCN of the eloquent model that is to be tested (ex. App\User) |
seedDatabase | boolean | false | true | Should the database be seeded before each test. If you are not running tests that require data in the database, you should set this to false to speed up your tests. |
seeders | array | false | - | If you wish to only call certain seeder classes you can set them here (ex. ['UsersTableSeeder', 'PostsTableSeeder'] (only used if seedDatabase property is not set to false). |
subject | Model** | false | - | This is the instance of the model class that is being tested. When setting up a test, the EloquentTestCase class initializes a new empty model. |
*These settings are only used if the seedDatabase property is not set to false (the default value for the seedDatabase property is true).
** The subject property is an instance of \Illuminate\Database\Eloquent\Model.
Database Testing Methods
\EGALL\EloquentPHPUnit\Database\Table
Get the EGALL\EloquentPHPUnit\Database\Table
class instance by calling the table property.
Usage:
Table methods
column($columnName)
Initializes a new EGALL\EloquentPHPUnit\Database\Column
class instance for table's column name that is passed in.
Usage:
Returns: EGALL\EloquentPHPUnit\Database\Column
exists()
Assert that the table exists in the database.
Usage:
Returns: EGALL\EloquentPHPUnit\Database\Table
hasTimestamps()
Assert that the table has timestamp columns.
Usage:
Returns: EGALL\EloquentPHPUnit\Database\Table
resetTable($tableName)
Using this method it is possible to test multiple tables in one test class.
Usage:
The usage code below is using a user/user-roles, example. The relationship is as follows: A user can have many role and a role can have many users (many-to-many). In eloquent, we would describe this relationship as a user belongsToMany
roles through the user_role table and vice-versa.
Returns: EGALL\EloquentPHPUnit\EloquentTestCase
/ $this
Model Testing Methods
// TODO
Example Model Test
Contributing
- Fork it.
- Create your branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request.
History
- v1.0.0 Released: 8/5/2016
- v1.0.3 Released: 8/9/2016
- v1.0.6 Released: 9/21/2016
Projects using Eloquent-PHPUnit
- Canvas ★803: A simple, powerful blog publishing platform built on top of Laravel 5 by @austintoddj
Author
License
Eloquent-PHPUnit is an open-sourced software licensed under the MIT license.