assertDatabase没有说“表为空”

时间:2019-06-13 07:06:47

标签: php laravel phpunit

我试图断言数据库中有记录,但是记录失败,而且我不知道如何解决该问题

我的代码是:

class ControlTransferRejectTest extends TestCase
{
    use RefreshDatabase;

    private const TO_USER_ID = 'to_user_id';
    private const FROM_USER_ID = 'from_user_id';
    private const TC_SITE_ID = 'tc_site_id';
    private const CONTROL_TYPE = 'type';
    private const ROUTE_STORE = 'controltransfers.store';

    public function setUp()
    {
        parent::setUp();

        // spin up 16 sites to support control transfer
        $this->sites = create('App\Site', [], 16);

        // spin up 107 users to support control transfer
        $this->users = create('App\User', [], 107);
    }

    /** @test */
    public function authenticated_user_with_pending_control_transfer_rejects()
    {
        // ARRANGE test preconditions
        $postArray = [
            self::TO_USER_ID => $this->users[0]->id,
            self::TC_SITE_ID => $this->sites[0]->id,
            self::CONTROL_TYPE => 'Transfer'
        ];

        $response = $this->post(route(self::ROUTE_STORE), $postArray);

        $this->assertDatabaseHas('control_transfers', [
            self::TO_USER_ID => $this->users[0]->id,
            parent::SITE_ID =>  $this->sites[0]->id,
            self::FROM_USER_ID => $this->users[1]->id,
            self::CONTROL_TYPE => 'Transfer',
            'outcome' => NULL,
            'pending' => True
        ]);


        // ACT on the items under test

        // ASSERT that the expected results have occurred

    }
}

但是当我尝试执行测试时,它会说

  

表为空   供应商/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php:22

我的用例是我正在调用一个控制器函数,该函数在两个不同的表中创建记录。

我正在尝试在一个表中进行检查,但是由于上述错误而失败。

0 个答案:

没有答案