fs-ap/laravel-relationship-test

增强Laravel中模型与项目之间关系的单元测试

1.1 2016-04-22 14:51 UTC

This package is not auto-updated.

Last update: 2024-09-20 18:33:54 UTC


README

==================

增强Laravel中模型与项目之间关系的单元测试

Composer安装

{
  
  "require-dev": {
    "fs-ap/laravel-relationship-test": "~1.0"
  }
}

通过终端: composer require --dev fs-ap/laravel-relationship-test:~1.0

用法

<?php

use Fs\Relationship;

	class AuthorModelTest extends PHPUnit_Framework_TestCase {
    
        /**
         * Check if the class in first param has a method that defines relation of type Relationship::HAS_MANY
         * and the second class has a relation of type Relationship::BELONGS_TO
         */
        public function testAuthorCanHaveManyComments()
        {
            Relationship::check(Author::class, Relationship::HAS_MANY, Comment::class));
        }
    }

说明

此功能通过定义关系的方法上的 @return 注释来检查模型之间的双向关系

<?php

	class Author extends Illuminate\Database\Eloquent\Model {
    
        /**
		* @return Illuminate\Database\Eloquent\Relations\HasMany
        */
        public function comments() { return \$this->hasMany(Comment::class); }
    }

<?php

	class Comment extends Illuminate\Database\Eloquent\Model {

        /**
        * @return Illuminate\Database\Eloquent\Relations\BelongsTo
        */
        public function author() { return \$this->belongsTo(Author::class); }
    }

双向检查映射

禁用双向检查

<?php

Relationship::check(Author::class, Relationship::HAS_MANY, Comment::class, true);

此检查仅当 Author 有许多独立的 Comment 时才会进行,无论是否在 Comment 类中定义了关系