มีกรอบการทดสอบ node.js ที่ดี (ฝั่งเซิร์ฟเวอร์ js) หรือไม่? ฉันกำลังมองหาบางสิ่งที่ลึกกว่าโมดูล Assert ที่ให้มาเล็กน้อย
มีกรอบการทดสอบ node.js ที่ดี (ฝั่งเซิร์ฟเวอร์ js) หรือไม่? ฉันกำลังมองหาบางสิ่งที่ลึกกว่าโมดูล Assert ที่ให้มาเล็กน้อย
คำตอบ:
ฉันลงเอยด้วยการใช้หน่วยโหนดและฉันมีความสุขมากกับมัน
ตอนแรกฉันใช้Expressoแต่ความจริงที่ว่ามันใช้การทดสอบแบบขนานทำให้เกิดปัญหาเล็กน้อย (ตัวอย่างเช่นการใช้ส่วนควบฐานข้อมูลทำงานได้ไม่ดีในสถานการณ์นี้)
.done()
imho
.done()
เพื่อรองรับการทดสอบแบบอะซิงโครนัส ฉันยอมรับว่ามันอาจเป็นเรื่องไม่สะดวกสบายเล็กน้อยในบางครั้ง แต่มันก็มีเหตุผลที่ดีสำหรับการทำเช่นนี้
ผมยังมองหากรอบทดสอบที่ดีสำหรับโหนดและพบว่า มอคค่า มันเป็นผู้สืบทอดอย่างเป็นทางการของExpressoและดูเป็นผู้ใหญ่มาก
อนุญาตให้ปลั๊กอินไลบรารีการยืนยันที่แตกต่างกันให้บริการกับนักข่าวสำหรับการครอบคลุมโค้ดและสิ่งอื่น ๆ (คุณสามารถปลั๊กอินของคุณเอง) สามารถเรียกใช้การซิงค์หรือ async และมี API ที่รัดกุม
ฉันจะลองและรายงานกลับ ...
หลังจากใช้เวลาทุ่มเทอย่างไม่น่าเชื่อกับโครงการอื่น ๆ ในที่สุดฉันก็กลับมาที่โครงการ Javascript และมีเวลาเล่นกับมอคค่า ฉันสามารถแนะนำให้ใช้อย่างจริงจัง การทดสอบอ่านได้อย่างดีมากการรวมเข้ากับอึที่ดีเยี่ยมและการทดสอบดำเนินไปอย่างรวดเร็วมาก ฉันสามารถตั้งค่าแบบสแตนด์อโลนอัตโนมัติเช่นเดียวกับการทดสอบในเบราว์เซอร์ (browserify) และรายงานการครอบคลุมโค้ดที่เกี่ยวข้องในเวลาประมาณครึ่งวัน (ส่วนใหญ่ใช้เวลาในการทำความเข้าใจวิธีการใช้ browserify จากอึก) สำหรับฉันมอคค่าดูเหมือนจะเป็นทางเลือกที่ดีมากสำหรับกรอบการทดสอบ
ฉันยังคงเชื่อมั่นมากเกี่ยวกับมอคค่า บูรณาการกับชัยอนุญาตให้ปลั๊กอินรูปแบบการยืนยันที่แตกต่างกัน คุณสามารถชำระเงินการตั้งค่าที่ใช้งานได้ในโครงการ GitHubนี้ ตอนนี้ฉันใช้มันกับกรรมรวมการรายงานความครอบคลุมของรหัสผู้เฝ้าดูอัตโนมัติและการรวมที่ดีกับ IntelliJ
ฉันใช้โมดูลยืนยันเป็นการส่วนตัว แต่ก็พบว่าตัวเองต้องการมากขึ้น ฉันได้ดูโมดูลโหนดจำนวนมากและกรอบการทดสอบหน่วยยอดนิยมคือโหนดหน่วยและควร (ซึ่งทำโดยคนเดียวกับ Expresso (อาจเป็นชื่อที่อัปเดตหรือไม่)
คำสัตย์สาบานยังดูมีแนวโน้ม
โดยส่วนตัวฉันติดอยู่กับExpressoแต่มีกรอบการทำงานที่แตกต่างกันออกไปรองรับรูปแบบการทดสอบส่วนใหญ่
Joyent มีรายการที่กว้างขวาง ; ให้ไป
vowsเป็นไลบรารีการทดสอบหน่วยทึบสำหรับ node.js แต่ไวยากรณ์นั้นน่าเบื่อ
ฉันได้เขียนสิ่งที่เป็นนามธรรมบางอย่างที่เรียกว่าคำสัตย์สาบานซึ่งทำให้ API chainable
และฉันได้เขียนสิ่งที่เป็นนามธรรมอีกครั้ง [คำสัตย์สาบาน] ซึ่งสร้างขึ้นบนคำสาบานได้อย่างคล่องแคล่วและเปิดเผยไวยากรณ์ลักษณะ BDD
ตัวอย่างจะเป็น
var is = require("vows-is");
is.suite("testing is fun").batch()
.context("is testing fun?")
.topic.is("yes")
.vow.it.should.equal("yes")
.suite().run({
reporter: is.reporter
});
ฉันคิดว่าในกรอบการทดสอบต่าง ๆ ที่มีอยู่มอคค่าเป็นรุ่นล่าสุดและใช้ง่ายมาก นี่คือการสอนที่ยอดเยี่ยมเกี่ยวกับวิธีการใช้: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
หากคุณคุ้นเคยกับQUnitคุณสามารถใช้node-qunitซึ่งเป็นประเภทของ wrapper โหนดรอบกรอบที่มีอยู่ของ QUnit
สร้างขึ้นครั้งแรกสำหรับ node.js, deadunitเป็นห้องสมุดทดสอบหน่วย javascript สำหรับ node.js และเบราว์เซอร์ คุณลักษณะบางอย่างที่เป็นเอกลักษณ์:
count
ยืนยันที่เรียบง่ายที่ทำให้การจัดการกับข้อยกเว้นที่คาดหวังและการยืนยันแบบอะซิงโครนัสง่ายtest-studioเป็นแพคเกจ npm ที่ให้ประสิทธิภาพการทำงานส่วนหน้าบนเว็บสำหรับการทดสอบหน่วย มันรองรับสิ่งต่าง ๆ เช่นการดำเนินการทดสอบแบบเดี่ยวหรือแบบกลุ่ม ปัจจุบันสนับสนุนมอคค่าและกรอบมากขึ้นจะได้รับการสนับสนุนในอนาคตความต้องการ
อ่านข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่
ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียน