相关疑难解决方法(0)

在Laravel中设置PHPUnit测试

我对单元测试很新,但我已经阅读了很多关于phpunit.de的文档(直到第10章).

它指出使用数据库进行测试可能很慢,但如果设置正确,它可以与非数据库测试一样快.

因此,我想在Laravel中测试一个模型.我已经创建了一个模型工厂来将数据植入数据库.

我也创建了一个基本测试.

在PHPUnits文档中,它声明在每次测试之前,setUp()调用该方法来设置测试.还有另一种静态方法setUpBeforeClass().

我想只为我的数据库表播种一次,并使用我的测试中的记录.所以我使用Laravels factory()函数从setUpBeforeClass()方法中为数据库设定种子.

这是我的代码:

class CommentTest extends TestCase
{
    protected static $blog;
    protected static $comments;

    public static function setUpBeforeClass()
    {
        parent::setUpBeforeClass();

        self::$blog = factory(App\Models\Content\Blog::class)->create();
        self::$comments = factory(App\Models\Content\Comment::class, 6)->create();
    }

    public function testSomething()
    {
        $this->assertTrue(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时phpunit,我收到以下错误:

Fatal error: Call to a member function make() on a non-object in \vendor\laravel\framework\src\Illuminate\Foundation\helpers.php on line 54

Call Stack:
    0.0002     240752   1. {main}() \vendor\phpunit\phpunit\phpunit:0
    0.0173    1168632   2. PHPUnit_TextUI_Command::main() \vendor\phpunit\phpunit\phpunit:47 …
Run Code Online (Sandbox Code Playgroud)

php phpunit laravel laravel-5.1

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

laravel ×1

laravel-5.1 ×1

php ×1

phpunit ×1