Lua:
การเขียนการทดสอบ

วิธีการ:

Lua ซึ่งเป็นภาษาสคริปติ้งที่ทั้งเบาและทรงพลัง ไม่มีกรอบการทดสอบที่ติดตั้งมาในตัว อย่างไรก็ตาม ไลบรารีของบุคคลที่สาม เช่น Busted และ LuaUnit ทำให้การทดสอบเป็นเรื่องที่ค่อนข้างตรงไปตรงมา ที่นี่ เราจะดูตัวอย่างโดยใช้ทั้งสองแบบ

การใช้ Busted

Busted เป็นกรอบการทดสอบสำหรับ Lua ที่ได้รับความนิยมและเสนอวิธีที่ยืดหยุ่นในการเขียนทดสอบ ก่อนอื่น ติดตั้ง Busted ผ่าน LuaRocks (ตัวจัดการแพคเกจของ Lua) ด้วยคำสั่ง luarocks install busted หลังจากติดตั้งแล้ว คุณสามารถเขียนทดสอบของคุณได้ นี่คือทดสอบง่ายๆ สำหรับฟังก์ชัน add ที่รวมสองตัวเลข:

-- add.lua
local function add(a, b)
  return a + b
end

return add
-- add_spec.lua
local add = require('add')

describe("ฟังก์ชัน Add", function()
  it("ควรจะรวมสองตัวเลขได้อย่างถูกต้อง", function()
    assert.are.equal(5, add(2, 3))
  end)
end)

เพื่อรันทดสอบ ให้ประมวลผล busted ในเทอร์มินัลของคุณ ผลลัพธ์ตัวอย่างสำหรับการทดสอบที่ผ่านจะมีลักษณะดังนี้:

●
1 ความสำเร็จ / 0 ความล้มเหลว / 0 ข้อผิดพลาด / 0 รอดำเนินการ : 0.002 วินาที

การใช้ LuaUnit

LuaUnit เป็นกรอบการทดสอบอีกตัวที่ตามหลักการของ xUnit และง่ายต่อการตั้งค่า ติดตั้ง LuaUnit ผ่าน LuaRocks โดยใช้ luarocks install luaunit นี่คือวิธีที่คุณสามารถเขียนทดสอบที่คล้ายกันกับข้างต้นด้วย LuaUnit:

-- add.lua ยังคงเหมือนเดิม

-- test_add.lua
luaunit = require('luaunit')
local add = require('add')

function testAdd()
  luaunit.assertEquals(add(2, 3), 5)
end

os.exit(luaunit.LuaUnit.run())

การรันสคริปต์นี้โดยตรงผ่าน Lua (lua test_add.lua) จะแสดงผลลัพธ์ออกมาเช่น:

.
ทำการทดสอบ 1 ครั้งใน 0.001 วินาที, 1 ความสำเร็จ, 0 ความล้มเหลว

ทั้ง Busted และ LuaUnit มีคุณลักษณะที่กว้างขวางในการจัดการกับสถานการณ์การทดสอบที่หลากหลาย รวมถึงการจำลอง, การสอดแนม, และการทดสอบที่ไม่ประสานเวลา เลือกใช้ระหว่างทั้งสองขึ้นอยู่กับความต้องการเฉพาะของโปรเจกต์ของคุณและความชอบส่วนบุคคลเกี่ยวกับไวยากรณ์และฟังก์ชันการทำงาน