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

สวัสดี Swift Testing

$
0
0

ทาง Apple ได้เปิดตัว Swift Testing ซึ่งเป็น unit test framework ตัวใหม่
ซึ่งมาพร้อมกับ Xcode 16
โดยที่มี syntax และรูปแบบการใช้งานที่ง่ายและสะดวกขึ้น
มีการ assert ที่ดีขึ้น
อีกทั้งยังมี parameterized testing เป็นต้น
ดังนั้นมาทำความรู้จักและลองใช้งานกันหน่อย

ก่อนหน้านี้ในการเขียน test ด้วย Swift บน Xcode นั้น
จะใช้งาน XCTest ซึ่งเป็น test framework ที่เก่ามาก ๆ
เทียบกับ JUnit 3 ได้เลย
โดยชื่อ test case ต้องขึ้นด้วยคำว่า test

ใน Swift Testing เขียนง่าย ๆ ได้แบบนี้
แต่ละ test case ขึ้นต้นด้วย @test
และสามารถใส่ชื่อที่อธิบายได้ง่าย ๆ เช่น @test("human readtable")
ทำไมมันเหมือน ๆ Junit 5 เลย
ในส่วนของการ assert จะใช้ #assert
เป็น feature ใหม่ ชื่อว่า Expression macros

รวมทั้งยังแบ่งกลุ่มของ test case ด้วย tag แบบง่าย ๆ ได้อีก (ไม่ใช่ของใหม่อะไรเลย)
ดังนี้

[gist id="75065e64e58acf4928105a8d40996af4" file="1.swift"]

ในการ run นั้น จะเป็นการ run แบบ parallel โดย default
นั่นหมายความว่าแต่ละ test case/method จะถูก run แยก instance กัน
ดังนั้นทำให้แต่ละ test case/method ทำงานเป็นอิสระแก่กันไปเลย

ถ้าต้องการทดสอบพวก Exception ต่าง ๆ ทำได้ดังนี้

[gist id="75065e64e58acf4928105a8d40996af4" file="2.swift"]

สำหรับการทดสอบด้วย data-driven testing หรือ parameterized นั้น
ก็สามารถทำได้ง่าย ด้วยการใส่ arguments เข้าไปใน @Test ได้เลย

[gist id="75065e64e58acf4928105a8d40996af4" file="3.swift"]

ศึกษาเพิ่มเติมได้ที่

GitHub :: Swift Testing
Getting started
WWDC24 Developer Tools guide
Swift Testing – A New Unit Testing Framework


Viewing all articles
Browse latest Browse all 1997

Trending Articles