junit Archive

JUnit :: Test Isolation คือ อิสรภาพทางการทดสอบ

หลังจากที่รู้แล้วว่า โครงสร้างที่ดีของ unit test เป็นอย่างไร ต่อมาขอแนะนำวิธีการทำให้ unit test ดูดีขึ้นไปอีก นั่นก็คือ การเป็นอิสระจาก code ที่เราพัฒนาจริงๆ เพื่อให้การทดสอบมีความคล่องตัว เป็นอิสระต่อส่วนต่างๆ ที่ต้องเกี่ยวข้อง เช่น Database, Network และระบบไฟล์ เป็นต้น แล้วมันทำอย่างไรล่ะ

Read More…

JUnit :: แนะนำโครงสร้างของ unit test ที่ดี

JUnit เป็น library สำหรับการเขียน unit test สำหรับภาษา Java ซึ่งหลายๆ คนบอกว่า มันอาจจะดูน่าเบื่อ ไม่ได้ต้องไปสนใจอะไรมากนัก แต่ถ้าเขียน หรือ ใช้มันแบบไม่สนใจอะไร จะพบว่า unit test ที่เขียนขึ้นมานั่นแหละ มันจะทำให้คุณลำบาก เช่น ดูแลรักษายาก แก้ไขยาก แก้ code ครั้งหนึ่งกระทบ test เยอะไปหมดเลย ใช้เวลาในการพัฒนาสูง ไม่ไว้ในการทดสอบ ดังนั้นมาดูว่า จะเขียน unit test ด้วย JUnit อย่างไรให้ดูดีมีสาระ

Read More…

วันนี้คุณทำความสะอาด Test แล้วหรือยัง

ผมเชื่อว่า หลายๆ คนที่เขียน unit test นั้น มักจะมีการจัดการ unit test ในรูปแบบดังนี้ ถ้าทำการทดสอบคลาส User จะสร้าง unit test ชื่อว่า UserTest ขึ้นมา และใน UserTest จะประกอบไปด้วย test case หรือ test method จำนวนมากมาย ซึ่งพบว่า เราก็จะทำการเพิ่ม test case เข้าไปเรื่อยๆ ตามจำนวนของ requirement หรือ feature หรือตามเงื่อนไขต่างๆ  ที่เพิ่มเข้ามา สุดท้าย พบว่า มันใหญ่มากๆ แล้วเราแก้ไขอย่างไรกันล่ะ

Read More…

Java :: แนะนำการเขียน Data Driven Unit Testing ด้วย JUnit

วิธีการทดสอบหนึ่งที่ ได้รับความนิยมมาก คือ Data Driven Testing โดยใช้สำหรับทดสอบขั้นตอนการทำงานเดิมๆ ด้วยข้อมูลที่แตกต่างกัน ซึ่งใน JUnit สามารถทำการทดสอบลักษณะนี้ได้เช่นกัน ดังนั้น มาดูกันว่าจะใช้งานอย่างไร

Read More…

Java :: สร้าง Annotation ชื่อ @Backlog เพื่อทำงานร่วมกับ JUnit

ปัญหา โจทย์ที่ได้รับมาก็คือ ในการพัฒนา software นั้น ถ้ามีการแตกงานออกมาเป็น backlog แล้ว เมื่อเวลานำเข้ามาพัฒนาแล้วนั้น จำเป็นจะต้องเขียน unit test ขึ้นมา คำถามที่มักเกิดขึ้นมาก็คือ แล้วเราจะรู้ได้อย่างไรว่า unit test แต่ละ test case นั้น เกิดขึ้นจาก backlog ไหน

Read More…

ทางเลือกใหม่สำหรับการเขียน unit test ด้วย JUnit ด้วยรูปแบบ RSpec/Jasmine

วันนี้เห็นมีคน share เรื่องรูปแบบการเขียน unit test ด้วย JUnit ตามรูปแบบของ RSpec  และ Jasmine ซึ่งแน่นอนว่ารูปแบบจะอ่านง่ายกว่า JUnit แบบเดิมๆ แน่นอน เนื่องจากผมเคยเขียน RSpec มาบ้างเล็กน้อย ดังนั้นเรามาดูกันว่ามันเป็นอย่างไร

Read More…

JUnit :: จัดการกับระบบไฟล์อย่างไรดี

มีคำพูดหนึ่งที่น่าสนใจคือ Unit test จริงๆ นั้นจะไม่ … ทำงานกับระบบไฟล์ ( File system ) โดยตรง เนื่องจากมองว่ามันเป็น dependency ที่ไม่สามารถควบคุมได้ ดังนั้น ถ้าเราต้องการเขียน unit test ที่ทำงานกับระบบไฟล์ล่ะ จะต้องทำอย่างไร

Read More…