我在Laravel中创建了一个简单的User Repository类,它将处理所有CRUD功能.
一切正常,但是当我尝试使用phpunit进行单元测试时,它们都会分崩离析.
我正在运行Laravel的最新开发版本,我知道这不是一个稳定版本,但我很困惑这是一个laravel错误还是我做错了什么.
运行phpunit时,我得到了这个巨大的错误输出.
我的课程是
模范角色
namespace Shazzam\Models;
use Illuminate\Database\Eloquent\Model;
class Role extends Model {
protected $fillable = ['name'];
}
Run Code Online (Sandbox Code Playgroud)
角色存储库
namespace Shazzam\Repositories;
use \Shazzam\Models\Role;
class RoleRepository
{
/**
* @param array $args
* @return bool
*/
public function create($args)
{
$role = new Role($args);
return $role->save();
}
}
Run Code Online (Sandbox Code Playgroud)
RoleRepository测试
use Shazzam\Repositories\RoleRepository;
class RoleRepositoryTest extends TestCase
{
public $repo;
public function setUp()
{
$this->repo = new RoleRepository;
}
public function test_it_creates_a_new_role()
{
$role['name'] = "NewRole";
$this->assertTrue($this->repo->create($role));
}
}
Run Code Online (Sandbox Code Playgroud)
如果你发现我做错了什么,请告诉我.我真的很想继续研究Laravel的开发版本.谢谢.
编辑1-在RoleRepository create方法中删除了数组类型提示.更新标题
对我来说,它的工作原理如下:
public function setUp() {
parent::setUp();
// Create DB in memory!
Artisan::call('migrate');
DB::beginTransaction();
Session::start();
factory('App\Models\User')->create();
}
Run Code Online (Sandbox Code Playgroud)
重要说明:在我的情况下,parent :: tearDown()必须低于DB :: rollBack(),否则它不起作用!
public function tearDown() {
DB::rollBack();
parent::tearDown();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3040 次 |
| 最近记录: |