我正在尝试通过 PhpUnit 学习 API 测试。我无法理解它的流程?
Posted
技术标签:
【中文标题】我正在尝试通过 PhpUnit 学习 API 测试。我无法理解它的流程?【英文标题】:I am trying to learn API testing through PhpUnit. I am not able to understand it's flow? 【发布时间】:2016-11-13 01:55:14 【问题描述】:我遇到了以下代码,我只想问一些与该代码相关的问题,以便我可以编写自己的代码?
代码是
<?php
require('vendor/autoload.php');
class BooksTest extends PHPUnit_Framework_TestCase
protected $client;
protected function setUp()
$this->client = new GuzzleHttp\Client([
'base_uri' => 'http://mybookstore.com'
]);
public function testGet_ValidInput_BookObject()
$response = $this->client->get('/books', [
'query' => [
'bookId' => 'hitchhikers-guide-to-the-galaxy'
]
]);
$this->assertEquals(200, $response->getStatusCode());
$data = json_decode($response->getBody(), true);
$this->assertArrayHasKey('bookId', $data);
$this->assertArrayHasKey('title', $data);
$this->assertArrayHasKey('author', $data);
$this->assertEquals(42, $data['price']);
我的问题是:
1> 'base_uri' => 'http://mybookstore.com' 是什么意思?
【问题讨论】:
要是documented somewhere就好了。 谢谢.......如果这是我的 uri link 那么我应该如何编写我的查询。 【参考方案1】:base_uri 是进行测试的 uri。在这种情况下http://bookstore.com。在您的函数 testGet_ValidInput_BookObject() 中,您使用 get'/books' 它将在 http://bookstore.com/books 中查找。
【讨论】:
谢谢.......如果这是我的 uri link 那么我应该如何编写我的查询。 我是否必须将每个参数作为查询传递,或者我可以传递'query' => [ 'category' => 'SUPERHEROES' ]
请告诉我如何同时测试多个 api。
我认为您应该尝试查看 deceze 在后一条评论中提供的链接。以上是关于我正在尝试通过 PhpUnit 学习 API 测试。我无法理解它的流程?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用phpunit在具有动态URI的laravel中测试REST api
phpunit 测试资源 laravel 5.5 返回集合而不是 json
在 Laravel 中测试具有部分视图的表单时,Phpunit 会引发错误