iOS快照测试用例

“ iOSSnapshotTestCase” FBSSnapshotTestCase教程库Facebook脚本库uber

ตัว快照测试用例มันเอาไว้

快照快照方法renderInContext: UIView对象CALayer对象存储库(参考图像)源代码存储库中的源代码文档显示失败。

ราะ

codeอเราเขียน代码ที่เกี่ยวข้องกับUIเยอะมากๆายกรณีทดสอบ(测试用例)ที่เราต้องทำเมื่อสร้าง UIView แล้ว…

  • textราจะรู้ได้อย่างไรว่าตัวอักษร(文本)ที่ใส่เข้าไปเพียงพอในพื้นที่ที่เตรที่ที่เตยมไว้ิ่งโด
  • ดีกับราจะรู้ได้อย่างไรว่ารูปที่เตรียมไว้พอดีกับ图像视图ที่มีให้
  • Viewราจะรู้ได้อย่างไรว่าสีหรือภาพของ UIView เป็นอย่างไรถ้า状态เปลี่ยนเช่น被选中,突出显示

codeาเราต้องเขียน代码iOSiOS快照测试案例ี่แหละจะมนี่แหละจะมนอน iOSSnapshotTestCase อาสามาถทำได้

Coารติดตั้งผ่านCocoaPods

  1. ให้เพิ่ม代码ในกล่องข้างล่างในPodfile
 target "ชื่อ target (unit) test" do 
use_frameworks!
pod 'iOSSnapshotTestCase'
end

Objectiveาใช้ภาษา Objective-C ให้ใช้ iOSSnapshotTestCase/Core แทนซึ่งจะตัดในส่วนการรองรับภาษา Swift ออกไป

อย่าลืมเปลี่ยนชื่อ目标测试นะครับ

2.บอกที่เก็บของไฟล์รูปซึ่งสามารถทำได้3แต่แนะนำให้เพิ่มเข้าไปที่schemaทั้งนี้สามารถกำหนดได้กำหนด2ปลายคือต้นฉบับ FB_REFERENCE_IMAGE_DIR ที่เก็บถ้ามีค่าไม่ตรไม่ตามฉบับ IMAGE_DIFF_DIR

สร้างกรณีทดสอบแรก

  1. งไฟล์ร้างไฟล์单元测试ที่อยู่ภายใต้目标ของ单元测试โดยให้子类ตัว FBSnapshotTestCase แทนตัว XCTestCase
  2. กใช้ FBSnapshotVerifyView ยกใช้方法FBSnapshotVerifyView ในการทดสอบ
  3. recordา recordMode = true methodน方法设置Upซึ่งการตั้งเป็น true จะสร้างรูปต้นฉบับให้(อย่าลืมcommitรูปเข้า仓库ด้วยนะครับ)

runอrun testใน recordMode จะมีข้จะมีข้อความ错误ว่า failed — Test ran in record mode.. นะครับอย่าตกใจ

4.ลบ recodeMode = true ออrunแล้วทำการ运行测试

iOSาใครต้องการให้สามารมารทดสอบได้หลายภาษาหลายขนาดเครื่องหลายiOSเวอร์ชั่นจะมีโปรเจคขอเจคขKickstarter ickนตัวอย่างนะครับสามารถไปดูได้ที่https://github.com/kickstarter/ios-oss

สวัสดีครับ

อ้างอิง:https://github.com/uber/ios-snapshot-test-case/