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

สวัสดี Kotest คือ Test framework สำหรับภาษา Kotlin

$
0
0

ปกติเขียน test ในภาษาโปรแกรมบน JVM ก็มี library/framework ให้เลือกเยอะ
ทั้ง JUnit, Spock, Spek, Kotlin test
แต่มีอีกตัวที่น่าสนใจคือ Kotest 
(ก่อนหน้านี้จะใช้ชื่อว่า KotlinTest แต่ไปซ้ำกับ test ที่มากับภาษา Kotlin จึงเปลี่ยนชื่อ)
โดยมีความสามารถที่น่าสนใจมาก ๆ  รวมทั้งเขียนง่ายด้วย
ดังนั้นมาลองทำความรู้จักกันหน่อย

Kotest เป็น test framework ที่จบในตัว

มีรูปแบบการเขียนที่หลากหลาย ด้วย DSL ที่เข้าใจง่าย
มี matcher มาให้มากกว่า 300 แบบ
มี property-based testing ให้มาเลย
ด้านหลังก็คือ JUnit 5 นั่นเอง รวมทั้งมีเพื่อน ๆ มาอีกเพียบ !!!

เริ่มการใช้งานด้วยเพิ่ม library เข้ามายัง project

โดยตัวอย่างจะเป็น Gradle project

[gist id="492ff8b4e7fcbe724df2baf745a09d72" file="build.gradle"]

รูปแบบของการเขียน test เยอะมาก ๆ (Test Style)

ประกอบไปด้วย

  • String spec
  • Fun spec
  • Should spec
  • Word spec
  • Feature spec (Feature และ Scenario เหมือนกับ cucumber)
  • Behavior spec (BDD Style)
  • Free spec
  • Describe spec (มาจาก Spec หรือพวก Jasmine)
  • Expect spec
  • Annotation spec

เลือกได้ตามความชอบเลยครับ !!
ยกตัวอย่างเช่น StringSpec อ่านง่ายดีนะ

[gist id="492ff8b4e7fcbe724df2baf745a09d72" file="1.kt"]

ต่อมามี Matcher หรือรูปแบบการตรวจสอบผลการทำงาน
มีให้ใช้งานมากกว่า 300 แบบเป้าหมายเพื่อให้ง่ายต่อการใช้งาน รวมทั้งอ่านง่ายและยืดหยุ่นสูง

ทดสอบแบบ Data-Driven Testing แบบง่าย ๆ

ยกตัวอย่างเช่น

[gist id="492ff8b4e7fcbe724df2baf745a09d72" file="2.kt"]

สนับสนุน Property-based testing

นั่นคือ จะทำการ generate test data ให้เองเลยยกตัวอย่างเช่น

[gist id="492ff8b4e7fcbe724df2baf745a09d72" file="3.kt"]

นี่คือ ความสามารถพื้นฐานของ Kotest
น่าจะเป็นอีกหนึ่งทางเลือกของการเขียน test ด้วยภาษา Kotlin
ขอให้สนุกกับการ coding ครับ


Viewing all articles
Browse latest Browse all 1997

Trending Articles