In diesem Beitrag werden ein SparkPost-Client unter Verwendung von PHP, Phpunit und Spott errichtet, wobei die Testentwicklung (TDD) betont wird. Es führt Sie durch das Erstellen eines Kunden, der mit der SparkPost -API interagiert, um E -Mails zu senden.
Schlüsselkonzepte:
Setup:
composer require guzzlehttp/guzzle phpunit/phpunit mockery/mockery
phpunit.xml
): (Hinweis: Die bereitgestellte XML -Konfiguration in der Eingabe ist unvollständig und nicht ordnungsgemäß formatiert. Eine korrigierte Version wird für eine genaue Ausführung benötigt. Ein minimales Beispiel: <?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="vendor/autoload.php"> <testsuites> <testsuite name="SparkPost API Client Tests"> <directory suffix="Test.php">./tests</directory> </testsuite> </testsuites> </phpunit>
config.php
), um Ihren SparkPost -API -Schlüssel zu speichern (denken Sie daran, diese zu .gitignore
hinzuzufügen): <?php return [ "key" => "[your SparkPost API key here]", ];
Schnittstellendesign und -Test:
Die Postanwälte für eine minimalistische und benutzerfreundliche Schnittstelle. Der erste Test konzentriert sich auf das Senden einer E -Mail über eine Postanforderung an die SparkPost -API. Spott wird verwendet, um den Guzzle -Client zu verspotten und das Testen der Parameterformatierung des Clients zu ermöglichen, ohne tatsächliche API -Aufrufe zu tätigen. Eine Basistestklasse (AbstractTest
) wird erstellt, um die Spottaufräumarbeiten zu verarbeiten.
Client -Implementierung:
Die Client
-Kläufe wird erstellt, wobei die API -Schlüsselverwaltung, die Basis -URL und die Forwing -Forwing -Anfrage bearbeitet werden. Die createTransmission
-Methode vereinfacht das Senden von E -Mails und liefert vernünftige Standardeinstellungen. Die request
-Methode übernimmt die tatsächliche Guzzle -Anforderung an die SparkPost -API.
Ausführen von Tests und Codeabdeckung:
Nach der Implementierung der Client
-Klasse wird Phpunit ausgeführt, um den Testerfolg zu überprüfen. Die Code -Abdeckungsanalyse (mit vendor/bin/phpunit --coverage-html coverage
) liefert Einblicke in die getesteten Teile des Codes.
Weitere Überlegungen:
Der Post zeigt Bereiche für Verbesserungen auf, wie z.
FAQS Zusammenfassung:
Der FAQS -Abschnitt enthält präzise Antworten auf wichtige Fragen zu TDD, Phpunit, Spott, Fehlerbehandlung, Sicherheit, Leistung, Skalierbarkeit, Integration, Wartung und Unterstützung der Community im Zusammenhang mit dem Aufbau eines SparkPost -Kunden.
Diese umgeschriebene Antwort liefert eine klarere und präzisere Zusammenfassung der ursprünglichen Eingabe, wobei die ursprüngliche Bedeutung und die Bildplatzierung beibehalten werden. Es wird auch die unvollständigen und falsch formatierten XML angesprochen, die in der ursprünglichen Eingabe bereitgestellt werden.
Das obige ist der detaillierte Inhalt vonErstellen eines SparkPost -Clients: TDD mit Phpunit und Spott. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!