Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

[Swift] แก้ไขปัญหาการทำ UI Testing สำหรับ UISlider

$
0
0

ปัญหามีอยู่ว่า

ไม่สามารถทำการเขียน code เพื่อทำ UI Testing สำหรับ UISlider ที่มีการแก้ไขรูปแบบการแสดงผลได้ สิ่งที่เจอคือ ทำการหมุน UISlider จากแนวนอนไปเป็นแนวตั้ง ทำให้รูปแบบของการหา element และการจัดการที่ต่างออกไป !!

วิธีการแก้ไข

โดย UISlider แบบปกตินั้น สามารถสั่งให้เลื่อนค่าใน UISlider ได้ผ่าน method adjust() ดังนี้ [code] app.sliders["id"].adjust(toNormalizedSliderPosition: 0.05) [/code] แต่เมื่อเจอของจริง ๆ มันไม่ได้ เนื่องจากทำการหมุนไปทิศทางอื่น ๆ ดังนั้น จึงเริ่มทำความเข้าใจกับการทำงานของ method adjust() ก่อน ด้วยการเขียน extension ดังนี้ [gist id="940dccb99e41c272e5bdb00f887fcab3" file="1.swift"] เรียกใช้งานแบบนี้ ซึ่งทำงานได้เหมือนกัน แสดงว่าน่าจะเดินมาในทางที่น่าจะถูก !! [code] app.sliders["id"].adjustX(toNormalizedSliderValue: 0.05) [/code] จากนั้นก็เริ่มไปทดสอบกับ UISlider ในรูปแบบอื่น ๆ ทั้งการหมุนมุมต่าง ๆ เช่น
  • 90 องศาทั้งบวกและลบ
  • 180 องศา
แสดงค่าเริ่มต้นดังรูป จากการศึกษาและทดลองของการหมุนในแต่ละรูปแบบ ก็มีการคำนวณที่แตกต่างกัน ทั้งแกนที่ใช้งานคือ แกม x และแกน y รวมทั้งจุดเริ่มต้นของ Thumb ว่าอยู่ตรงไหนอีกด้วย และจุดที่ต้องการให้เลื่อนไป โดยค่า default มีค่าตั้งแต่ 0 ถึง 1 โดยอีก 3 แบบสามารถเขียน code เพื่อควบคุม UISlider ได้ตามความต้องการ ซึ่งใส่จากซ้ายไปขวา และ บนลงล่างดังนี้ [gist id="940dccb99e41c272e5bdb00f887fcab3" file="2.swift"] ตัวอย่างของ source code อยู่ที่ Github :: Up1 ขอให้สนุกกับการ coding ครับ Reference Websites http://masilotti.com/ui-testing-cheat-sheet/

Viewing all articles
Browse latest Browse all 1997

Trending Articles