คำถามเกี่ยวกับการใช้งาน Cypress
ถ้าในระบบ web application ที่ทำการทดสอบแบบอัตโนมัติด้วย Cypress
มีการกด link หรือ ปุ่ม แล้วระบบทำการเปิด window หรือ tab ใหม่ขึ้นมา
เราจะทำการตรวจสอบการทำงานอย่างไรได้บ้าง ?
คำตอบเป็นดังนี้
ก่อนอื่นต้องดูก่อนว่าทำการเปิด window หรือ tab เหล่านั้นอย่างไรบ้าง
ยกตัวอย่างเช่น เป็นการเปิด link แบบเปิดหน้าใหม่ขึ้นมา คือ target=blank
ซึ่งถามเขียน test case แบบปกติ จะเกิด error
เนื่องจาก cypress ไม่ได้ switch หรือเปลี่ยนไปยัง tab ใหม่ !!
เขียนได้ดังนี้
การแก้ไขง่าย ๆ คือ การ remove attribute target ออกไปก่อนทำการ click เท่านั้นเอง
แก้ไขปัญหาแบบน่าเกลียดสุด ๆ แต่ทำได้ง่าย ๆ ดังนี้
ถ้าเป็นการกดปุ่ม แล้วเปิด tab/window ใหม่ ทำอย่างไร ?
สามารถทำได้หลายแบบ เช่น
ทำการตรวจสอบว่า หลังจากที่กดปุ่มแล้ว ทำการเปิด tab หรือ window ใหม่หรือไม่
ด้วยการทำ stub ของ window.open() นั่นเอง
ขึ้นอยู๋กับการ implement อีกด้วย
จากนั้นตรวจสอบว่า ถูกเรียกหรือไม่ และเปิดไปยัง url ของหน้าที่ต้องการหรือไม่
ซึ่งไม่ทำการเปิดขึ้นมาจริง ๆ
Reference Websites