【问题标题】:Call to a member function connection() on null during tests在测试期间在 null 上调用成员函数 connection()
【发布时间】:2017-07-27 00:32:58
【问题描述】:

我想做性能测试,所以我想在我的测试文件中使用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 版本或扩展。

【问题讨论】:

标签: php laravel lumen


【解决方案1】:

我正在回答我自己的问题以备将来提醒,也是因为我从未在其他任何地方找到此答案。

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

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

即使不使用 Laravel 内部测试框架,也需要这样做。

在 PHPStorm 中使用它:

要在 CLI 中使用它:

phpunit --configuration phpunit.xml

【讨论】:

    猜你喜欢
    • 2018-02-06
    • 2017-07-19
    • 2016-09-17
    • 2019-01-12
    • 2021-01-25
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    相关资源
    最近更新 更多