หลังจากที่เขียนภาษา R มาสักพัก
สิ่งที่น่าสนใจ และ ตั้งคำถามไว้คือ
ถ้าอยากเขียน Unit test ในภาษา R มันมี xUnit framework อะไรให้ใช้หรือไม่ ?
เมื่อไปค้นหาก็เจอเยอะเลย เช่น
- RUnit ทำการ update ล่าสุดในปี 2015
- svUnit ทำการ update ล่าสุดในปี 2014
- testthat ทำการ update ล่าสุดในปี 2016
เริ่มด้วยการ configuration และโครงสร้าง project ก่อนเลย
- เก็บ production code ไว้ใน folder src
- เก็บ test code ไว้ใน folder tests
เมื่อทุกอย่างพร้อมก็เริ่มเขียน test กันเถอะครับ
ซึ่งเขียนตามรูปแบบของ testthat ดังนี้ [gist id="0f88d05e1d4799dd8db2d263d5d15bf8" file="test.fizzbuzz.R"] คำอธิบาย- context ใช้อธิบายกลุ่มการทดสอบ
- test_that ทำการกำหนดชื่อการทดสอบ โครงสร้างคล้าย jasmine มาก ๆ
เมื่อ test fail แล้วก็ได้เวลาเขียน production code นะสิ
ก็เขียน code ง่าย ๆ เพื่อทำให้ชุดการทดสอบผ่านดังนี้ [gist id="0f88d05e1d4799dd8db2d263d5d15bf8" file="fizzbuzz.R"] ผลการทำงานผ่านสิ [code] TDD with R language: . DONE ================== [/code] สังเกตุไหมว่ามีจุด (.) จำนวน 1 จุดนะ นั่นคือจำนวนของชุดการทดสอบนั่นเองเพียงเท่านี้ก็สามารถเริ่มเขียน Unit testing สำหรับภาษา R ได้แล้วครับปล. ทำไปเพื่ออะไร ? ตอบง่าย ๆ คือ อยากทำเท่านั้นเองนะ Source code ตัวอย่างอยู่ที่ Github::Up1::TDD with R