【发布时间】:2021-01-07 07:45:03
【问题描述】:
我想介绍一种从 API 获取身份验证的方法。
这是我的课:
class MyService
{
private $api_token;
private $uri_api;
public function __construct(string $api_token, string $uri_api){
$this->api_token = $api_token;
$this->uri_api = $uri_api;
}
public function api_authentication(){
$client = HttpClient::create();
return $client->request('GET', $this->getUri_api().'salespoints/', [
'auth_bearer' => $this->getApi_token()
]);
}
}
这是我的测试课:
class MyServiceTest extends WebTestCase
{
public function test_api_authentication(){
$client = new HttpClient();
$stub = $this->getMockBuilder(myService::class)
->disableOriginalConstructor()
->disableOriginalClone()
->disableArgumentCloning()
->disallowMockingUnknownTypes()
->getMock();
$stub->method('api_authentication')->willReturn($client);
$this->assertSame($client, $stub->api_authentication());
}
}
我正在使用 PHPUnit here 的文档(示例 8.4)。
问题是当我运行 phpunit 时我的测试通过了,但 sonarQube 告诉我这不是测试覆盖率。我是使用 phpunit 的新手,所以如果您有任何建议。
感谢您的帮助!
【问题讨论】:
-
你到底在测试什么?整个测试似乎有点毫无意义。也许你可以澄清你的意图。
-
是的,菲利普,我认为我想要的不可能做到。我想测试一个 api 调用,但最后它没有被包含在测试覆盖范围内。
标签: php symfony sonarqube phpunit code-coverage