Skip to content

Instantly share code, notes, and snippets.

@michaelachrisco
Created February 16, 2017 00:06
Show Gist options
  • Save michaelachrisco/25f540a8ec7ba0ad5f0a102762d7f2a9 to your computer and use it in GitHub Desktop.
Save michaelachrisco/25f540a8ec7ba0ad5f0a102762d7f2a9 to your computer and use it in GitHub Desktop.
Sample test asserts on phpunit
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
abstract class TestCase extends Illuminate\Foundation\Testing\TestCase
{
public function assertBelongsTo($relation, $relationName){
$this->assertEquals('Illuminate\Database\Eloquent\Relations\BelongsTo', get_class($relation));
$this->assertEquals($relationName, get_class($relation->getRelated()));
}
public function assertHasOne($relation, $relationName){
$this->assertEquals('Illuminate\Database\Eloquent\Relations\HasOne', get_class($relation));
$this->assertEquals($relationName, get_class($relation->getRelated()));
}
public function assertHasMany($relation, $relationName){
$this->assertEquals('Illuminate\Database\Eloquent\Relations\HasMany', get_class($relation));
$this->assertEquals($relationName, get_class($relation->getRelated()));
}
}
@michaelachrisco
Copy link
Author

michaelachrisco commented Feb 16, 2017

How to use:

class ModelFooTest extends TestCase
{
    public function testRelations(){
      $subject = factory(App\ModelFoo::class)->make();
      $this->assertHasOne($subject->District(), 'App\FooRelation');
      $this->assertHasMany($subject->FooRelations(), 'App\FooRelation');
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment