【问题标题】:call_user_func() expects parameter 1 to be a valid callback - Laravel unit testingcall_user_func() 期望参数 1 是一个有效的回调 - Laravel 单元测试
【发布时间】:2015-05-29 00:34:51
【问题描述】:

我正在测试一个返回 JOSN 对象的 API,同时运行以下命令:

public function testBasicExample()
    {
        $response = $this->call('GET', 'sites/1/webmaster/totalstats?since=2014-01-01&until=2014-12-30');
    }

出现错误:

有 1 个错误:

1) ExampleTest::testBasicExample ErrorException: call_user_func() 期望参数 1 是一个有效的回调,没有给出数组或字符串

/var/www/html/laravel/app/facade/Webmaster.php:527 /var/www/html/laravel/app/helpers/WebmasterHelper.php:100 /var/www/html/laravel/app/controllers/WebmasterController.php:129 /var/www/html/laravel/app/routes.php:73 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php:109 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1033 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1001 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:775 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:745 /var/www/html/laravel/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php:81 /var/www/html/laravel/vendor/symfony/browser-kit/Symfony/Component/BrowserKit/Client.php:327 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/ApplicationTrait.php:51 /var/www/html/laravel/app/tests/ExampleTest.php:16

失败!测试:1,断言:0,错误:1。

我几天前刚开始使用 laravel,所以我可能会犯一些非常基本的错误。请帮忙。谢谢

【问题讨论】:

    标签: unit-testing laravel


    【解决方案1】:

    你可能想这样做

    $response = $this->call('GET', 'sites/1/webmaster/totalstats', [
            'since' => '2014-01-01',
            'until' => '2014-12-30'
        ]);
    

    输入参数将作为第三个参数,你可以试一试。

    【讨论】:

    • 输入参数与第三个参数相同的错误。 @terry 低
    • 尝试注释掉您的 WebmasterController 中调用 WebmasterHelper 的代码,恐怕问题不在您的测试中
    【解决方案2】:

    假设您尝试在该端点发送 GET 请求,则说明您使用了错误的方法。

    试试这个:

    public function testBasicExample()
    {
        $response = $this->get('/sites/1/webmaster/totalstats?since=2014-01-01&until=2014-12-30');
    
    
    }
    

    那么你可能想要使用 Laravel 内置的 JSON 测试方法之一:https://laravel.com/docs/5.6/http-tests#testing-json-apis

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-01
      • 2020-11-08
      • 2021-04-18
      • 2012-10-04
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 2020-01-26
      相关资源
      最近更新 更多