blastcloud / guzzler
Supercharge your app or SDK with a testing library specifically for Guzzle.
Installs: 316 171
Dependents: 28
Suggesters: 1
Security: 0
Stars: 270
Watchers: 9
Forks: 3
Open Issues: 1
Requires
- php: >=8.1
- ext-json: *
- blastcloud/chassis: ^1.1.0
- guzzlehttp/guzzle: ^7.4.3
- phpunit/phpunit: >=9.6
README
Full Documentation at guzzler.dev
Supercharge your app or SDK with a testing library specifically for Guzzle. Guzzler covers the process of setting up a mock handler, recording history of requests, and provides several convenience methods for creating expectations and assertions on that history.
Installation
composer require --dev --prefer-dist blastcloud/guzzler
Example Usage
<?php use BlastCloud\Guzzler\UsesGuzzler; use GuzzleHttp\Client; class SomeTest extends TestCase { use UsesGuzzler; public $classToTest; public function setUp(): void { parent::setUp(); $client = $this->guzzler->getClient([ /* Any configs for a client */ "base_uri" => "https://example.com/api" ]); // You can then inject this client object into your code or IOC container. $this->classToTest = new ClassToTest($client); } public function testSomethingWithExpectations() { $this->guzzler->expects($this->once()) ->post("/some-url") ->withHeader("X-Authorization", "some-key") ->willRespond(new Response(201)); $this->classToTest->someMethod(); } public function testSomethingWithAssertions() { $this->guzzler->queueResponse( new Response(204), new \Exception("Some message"), // any needed responses to return from the client. ); $this->classToTest->someMethod(); // ... Some other number of calls $this->guzzler->assertAll(function ($expect) { return $expect->withHeader("Authorization", "some-key"); }); } }
Documentation
License
Guzzler is open-source software licensed under the MIT License.