Lawman adalah Plugin PestPHP untuk SaloonPHP yang memungkinkan Anda dengan mudah menulis pengujian arsitektur untuk integrasi API Anda dengan fokus pada kemudahan menulis dan membaca. Lagi pula, jika SaloonPHP membuat integrasi API kita indah, pengujiannya juga harus bagus, bukan?
Lawman membuat pengujian integrasi API SaloonPHP Anda, dari sudut pandang arsitektur, menjadi lebih mudah dilakukan. Memungkinkan Anda melihat sekilas apa yang sebenarnya dilakukan tes. Lawman adalah plugin untuk PestPHP yang berarti Anda dapat menggunakan Lawman Expectations dan PestPHP Expectations secara bersamaan, cukup rangkai apa saja yang Anda perlukan untuk pengujian Anda!
Mari kita lihat bagaimana Lawman dapat membantu mempermudah tes menulis.
Katakanlah kita mempunyai kelas Connector yang ingin kita uji, dengan PestPHP kita dapat melakukan hal berikut:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toExtend ( ' SaloonHttpConnector ' )
-> toUse ( ' SaloonTraitsPluginsAcceptsJson ' )
-> toUse ( ' SaloonTraitsPluginsAlwaysThrowOnErrors ' );
Sehingga pengujian tersebut memastikan kelas kita memperluas Konektor dasar dan menggunakan sifat AcceptJson
dan AlwaysThrowOnErrors
. Meskipun tes tersebut berhasil, kami mungkin dapat membuatnya lebih cepat untuk ditulis dan lebih mudah dibaca, jadi dengan Lawman, Anda dapat melakukan:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toBeSaloonConnector ()
-> toUseAcceptsJsonTrait ()
-> toUseAlwaysThrowOnErrorsTrait ();
Selanjutnya, mari kita lakukan tes Permintaan yang kita miliki:
test ( ' request ' )
-> expect ( ' AppHttpIntegrationsIntegrationRequestsRequest ' )
-> toExtend ( ' SaloonHttpRequest ' )
-> toImplement ( ' SaloonContractsBodyHasBody ' )
-> toUse ( ' SaloonTraitsBodyHasFormBody ' )
-> toUse ( ' SaloonTraitsPluginsAcceptsJson ' );
Lawman membuat tes ini lebih enak dibaca:
test ( ' request ' )
-> expect ( ' AppHttpIntegrationsIntegrationRequestsRequest ' )
-> toBeSaloonRequest ()
-> toSendPostRequest ()
-> toHaveFormBody ()
-> toUseAcceptsJsonTrait ();
Bagaimana jika kita ingin menguji Konektor kita memiliki metode Otentikasi? Lawman membuat hal ini mudah dilakukan, bahkan bekerja dengan multi auth:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toBeSaloonConnector ()
-> toUseCertificateAuthentication ()
-> toUseTokenAuthentication ();
Lawman juga memiliki Ekspektasi untuk Plugin Pagination, Cache, dan Rate Limit:
test ( ' request ' )
-> expect ( ' AppHttpIntegrationsIntegrationRequestsRequest ' )
-> toBeSaloonRequest ()
-> toSendPostRequest ()
-> toUsePagedPagination ()
-> toHaveCaching ()
-> toHaveRateLimits ()
Mungkin Connector kita mempunyai beberapa instruksi Coba Ulang yang ingin kita uji. Sekali lagi, dengan Lawman, semuanya sesederhana:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toBeSaloonConnector ()
-> toBeTriedAgainOnFailure ()
-> toHaveRetryInterval ()
-> toUseExponentialBackoff ()
Kontribusi pada paket ini sangat kami harapkan, jadi jika Anda memikirkan Harapan yang ingin Anda lihat, silakan kirimkan Permintaan Tarik atau Buka Masalah. Jika Anda mengirimkan Permintaan Tarik, pastikan Anda menambahkan Perlengkapan baru dan menguji Harapan Anda.