在测试期间调用null上的成员函数connection()

时间:2017-07-26 16:32:58

标签: php laravel lumen

我想进行高性能测试,因此我考虑在测试文件中使用PHPUnit_Framework_TestCase而不是TestCase。我正在牺牲http请求测试,但我至少想要使用Laravel的一些组件(比如它的提供者等)。

这是它的样子:

<?php

class ChatTest extends PHPUnit_Framework_TestCase
{
        /** @test */
    public function chat_can_be_accepted()
    {
        $this->chat->setStatus(Chat::CHAT_STATUS_WAIT_MASTER);
        $this->chat->accept();

        $this->assertEquals(Chat::CHAT_STATUS_WAIT_CONFIRM, $this->chat->getStatus());
    }
}

我说错误Call to a member function connection() on nullsetStatus实际上在这个例子中使用了Laravel内部(简单到需要应用程序的关系)。

我已经尝试过切换每个提供商,但似乎代码甚至没有通过提供商。还尝试更改PHP版本或扩展。

1 个答案:

答案 0 :(得分:3)

我正在回答我自己的问题,以便将来提醒,也因为我从未在其他地方找到过这个答案。

此时我正在使用PHPStorm,默认情况下启动测试时它不会自动加载phpunit.xml文件。

文件中的那一行启动Laravel(也与Lumen一起使用)以及测试:bootstrap="bootstrap/app.php"

即使不使用他们的测试框架,也需要使用Laravel内部。

在PHPStorm中使用它:

enter image description here

在CLI中使用它:

phpunit --configuration phpunit.xml