ฉันกำลังทดสอบไลบรารียูทิลิตี้ (ที่เราสร้างขึ้นเอง) ที่ทำการเรียกไปยัง REST API ภายนอกด้วย \Drupal::httpClient()
ดังนั้นฉันจึงมีคลาสไลบรารีพร้อมฟังก์ชันคงที่:
คลาส myUtils {
ฟังก์ชันสแตติกสาธารณะ getFromApi($path)
{
...
$response = \Drupal::httpClient()->request( ... );
...
}
...
}
และฉันต้องการเรียกสิ่งนั้นจากคลาสทดสอบ:
คลาส myUtilsTest ขยาย \Codeception\Test\Unit
{
//ๆๆๆๆๆๆๆๆๆๆ...
การทดสอบฟังก์ชั่นสาธารณะ GetFromApi()
{
//ร่ายเวทมนตร์เย้ยหยัน
...
myUtils::getFromApi('/some/test/path');
...
}
}
ฉันรู้ว่าฉันสามารถสร้าง \GuzzleHttp\Handler\MockHandler
และตั้งค่าให้ส่งคืนสิ่งที่ฉันต้องการ แต่ฉันจะตั้งค่าให้ "เขียนทับ" การโทรได้อย่างไร \Drupal->httpClient()
?
ฉันได้เห็นบางตัวอย่างที่ดูเหมือนจะถือว่าคุณมีอินสแตนซ์ของคลาสที่เป็นของตนเอง httpไคลเอนต์
สมาชิก และสิ่งนี้ถูกล้อเลียนได้ง่าย - แต่ในกรณีการใช้งานของฉัน ไม่มีเหตุผลเลยที่จะออกแบบโปรแกรมอรรถประโยชน์เช่นนั้น ดังนั้นฉันจะเยาะเย้ยได้อย่างไร ทั่วโลก \Drupal::httpClient()
ในกรณีนี้?
ขอบคุณล่วงหน้าสำหรับการตอบกลับใด ๆ