繁体   English   中英

Laravel 8.x:MOCK API测试:错误:调用未定义的方法App \\ Services \\ TrelloCardService :: _ downloadCardsFromBoard()

Laravel 8.x: MOCK API test:Error: Call to undefined method App\Services\TrelloCardService::_downloadCardsFromBoard()

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

当我调用功能测试时,出现以下错误:调用未定义的方法App \\ Services \\ TrelloCardService :: _ downloadCardsFromBoard()。

我写了以下服务:

namespace App\Services;

use App\Services\Api\TrelloCardAPIService;

class TrelloCardService
{
    protected $trelloCardApiService;

    public function __construct(TrelloCardAPIService $trelloCardApiService)
    {
        $this->trelloCardApiService = $trelloCardApiService;
    }
    
}

然后调用API的服务:

<?php


namespace App\Services\Api;

use App\Traits\CardTrait;
use Unirest\Request;

class TrelloCardAPIService
{
    public function call(string $url) {
        $headers = array('Accept' => 'application/json');
        $query = array('key' => env('TRELLO_KEY'), 'token' => env('TRELLO_TOKEN'));
        $r = Request::get($url, $headers, $query);
        return $r->body;
    }

    public function _downloadCardsFromBoard() {
        echo "API downloadCards!\n";
        $url = TRELLO_API_BASE_URL . "/boards/".TRELLO_BOARDS_SPRINT."/cards";
        $res = $this->call($url);
        return $res;
    }

}

然后我编写了测试功能:

namespace Tests\Feature;

use App\Services\Api\TrelloCardAPIService;
use App\Services\TrelloCardService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Facades\File;

use Tests\TestCase;

class trelloCardTest extends TestCase
{
    public function test_mock_card()
    {
        $cards = json_decode(File::get("tests/test_data/cards.json"),FALSE);

        $mock = $this->mock(TrelloCardAPIService::class, function ($mock) use ($cards) {
            $mock->shouldReceive('_downloadCardsFromBoard')
                ->once()
                ->andReturn($cards);
        });
        
        //here I print the var mock if I do the DD
        $mockedTrelloCardService = new TrelloCardService($mock);

        $data = $mockedTrelloCardService->_downloadCardsFromBoard();//fail this
        dd($data);//I would like to print $cards
    }
}

给我以下错误:

Error: Call to undefined method App\Services\TrelloCardService::_downloadCardsFromBoard()
问题暂未有回复.您可以查看右边的相关问题.
5 解决了! 调用未定义的方法 App\\Category::posts() Laravel

我想用 laravel 创建一些 CMS 项目,当用户尝试单击类别时,应用程序将显示仅显示用户单击的类别的帖子。 当用户单击类别时,应用程序会提示错误方法调用错误。 我应该怎么办? 任何帮助将不胜感激。 这是来自 web.php 的代码 这是来自 PostsController.php 的代码 ...

6 调用Laravel中未定义的方法App \\ User :: role()

我想创建一个具有特定角色的用户列表(如果指定了多个角色,则为角色) 在我的UserController中 但我有这个错误 如果我dd($users); 我看到角色在那里 我该如何解决这个问题? 谢谢! 编辑:用户模型 用户/ index ...

9 Rails未定义的方法“ fetch”,用于“ \\\\#PostgreSQL”。 支持版本7.4和8.x。”:字符串

当我在生产计算机上运行“ RAILS_ENV =生产捆绑包执行耙资产:预编译”时,出现以下错误: 我试过更新'pg'宝石。 我可以在开发和登台服务器上编译资产。 生产机器正在最后一次部署(7天前)上工作,并且我没有更改任何与数据库相关的配置。 ...

10 Laravel 调用未定义的方法 App\\Seo::mapInto()

当我尝试使用它返回的资源获取我的产品 SEO 数据时 代码 seo model product model product resource 我最好的猜测是导致此错误的SeoResource的collection ,但不确定是否应该将其更改为? 任何的想法? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM