我正在尝试创建我的第一个phpunit测试,并发现自己需要在IMailer接口上存根方法。 但是,我一直在努力 var_dump($mailer); 结果是 使用expect($this->any())会产生一个dito错误 - 似乎被模拟的对象没有任何模拟功能. ...
提示:本站收集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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.