Lawman เป็นปลั๊กอิน PestPHP สำหรับ SaloonPHP ซึ่งช่วยให้คุณเขียนการทดสอบสถาปัตยกรรมสำหรับการผสานรวม API ของคุณได้อย่างง่ายดาย โดยเน้นที่การเขียนง่ายและอ่านง่าย ท้ายที่สุดแล้ว หาก SaloonPHP ทำให้การผสานรวม API ของเราสวยงาม การทดสอบสำหรับสิ่งเหล่านั้นก็ควรจะสวยงามเช่นกัน ใช่ไหม?
Lawman ทำให้การทดสอบการผสานรวม SaloonPHP API ของคุณจากมุมมองทางสถาปัตยกรรมทำได้ง่ายขึ้นมาก ช่วยให้คุณเห็นได้อย่างรวดเร็วว่าการทดสอบกำลังทำอะไรอยู่ Lawman เป็นปลั๊กอินสำหรับ PestPHP ซึ่งหมายความว่าคุณสามารถใช้ Lawman Expectations และ PestPHP Expectations ร่วมกันได้ เพียงเชื่อมโยงสิ่งที่คุณต้องการสำหรับการทดสอบของคุณ!
มาดูกันว่า Lawman สามารถช่วยทำให้การทดสอบการเขียนง่ายขึ้นได้อย่างไร
สมมติว่าเรามีคลาส Connector ที่เราต้องการทดสอบ ด้วย PestPHP เราสามารถทำสิ่งต่อไปนี้:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toExtend ( ' SaloonHttpConnector ' )
-> toUse ( ' SaloonTraitsPluginsAcceptsJson ' )
-> toUse ( ' SaloonTraitsPluginsAlwaysThrowOnErrors ' );
ดังนั้นการทดสอบนั้นทำให้มั่นใจได้ว่าคลาสของเราจะขยายตัวเชื่อมต่อฐานและใช้คุณสมบัติ AcceptJson
และ AlwaysThrowOnErrors
แม้ว่าการทดสอบจะได้ผล แต่เราอาจทำให้การเขียนเร็วขึ้นและอ่านง่ายขึ้น ดังนั้น Lawman จึงสามารถดำเนินการได้:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toBeSaloonConnector ()
-> toUseAcceptsJsonTrait ()
-> toUseAlwaysThrowOnErrorsTrait ();
ต่อไป เรามาทำการทดสอบ Request ที่เรามี:
test ( ' request ' )
-> expect ( ' AppHttpIntegrationsIntegrationRequestsRequest ' )
-> toExtend ( ' SaloonHttpRequest ' )
-> toImplement ( ' SaloonContractsBodyHasBody ' )
-> toUse ( ' SaloonTraitsBodyHasFormBody ' )
-> toUse ( ' SaloonTraitsPluginsAcceptsJson ' );
Lawman ทำให้การทดสอบนี้น่าอ่านยิ่งขึ้น:
test ( ' request ' )
-> expect ( ' AppHttpIntegrationsIntegrationRequestsRequest ' )
-> toBeSaloonRequest ()
-> toSendPostRequest ()
-> toHaveFormBody ()
-> toUseAcceptsJsonTrait ();
แล้วถ้าเราต้องการทดสอบ Connector ของเราว่ามีวิธี Authentication ล่ะ? Lawman ช่วยให้ทำสิ่งนี้ได้ง่าย มันยังใช้งานได้กับการรับรองความถูกต้องหลายรายการ:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toBeSaloonConnector ()
-> toUseCertificateAuthentication ()
-> toUseTokenAuthentication ();
Lawman ยังมีความคาดหวังสำหรับปลั๊กอินการแบ่งหน้า แคช และจำกัดอัตรา:
test ( ' request ' )
-> expect ( ' AppHttpIntegrationsIntegrationRequestsRequest ' )
-> toBeSaloonRequest ()
-> toSendPostRequest ()
-> toUsePagedPagination ()
-> toHaveCaching ()
-> toHaveRateLimits ()
บางทีตัวเชื่อมต่อของเราอาจมีคำแนะนำในการลองใหม่ซึ่งเราต้องการทดสอบ อีกครั้งสำหรับ Lawman มันง่ายเหมือน:
test ( ' connector ' )
-> expect ( ' AppHttpIntegrationsIntegrationConnector ' )
-> toBeSaloonConnector ()
-> toBeTriedAgainOnFailure ()
-> toHaveRetryInterval ()
-> toUseExponentialBackoff ()
เรายินดีอย่างยิ่งที่จะมีส่วนร่วมในแพ็คเกจ ดังนั้นหากคุณนึกถึงความคาดหวังที่คุณต้องการดู คุณสามารถส่งคำขอดึงข้อมูลหรือเปิดประเด็นได้เลย หากคุณส่งคำขอดึง โปรดตรวจสอบให้แน่ใจว่าคุณได้เพิ่มโปรแกรมการแข่งขันใหม่และทดสอบความคาดหวังของคุณ