นี่คือตัวอย่างพื้นฐานของการทดสอบหน่วยของฉันที่ต้องใช้โดยใช้ qunit:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet" href="qunit/qunit-1.13.0.css">
<script src = "qunit/qunit-1.13.0.js"></script>
<script src = "../js/fuzzQuery.js"></script>
<script>
test("Fuzz Query Basics", function()
{
equal(fuzzQuery("name:(John Smith)"), "name:(John~ Smith~)");
equal(fuzzQuery("name:Jon~0.1"), "name:Jon~0.1");
equal(fuzzQuery("Jon"), "Jon~");
//etc
}
);
</script>
</head>
<body>
<div id="qunit"></div>
</body>
</html>
ตอนนี้ฉันคิดว่านี่เป็นเรื่องซ้ำ ๆ
สามารถใส่อินพุต / เอาต์พุตทั้งหมดลงในอาร์เรย์และวนรอบมันได้
test("Fuzz Query Basics", function()
{
var equals = [
["name:(John Smith)", "name:(John~ Smith~)"],
["name:Jon~0.1", "name:Jon~0.1"],
["Jon", "Jon~"]
];
for (var i = 0; i<equals.length; i++)
{
equal(fuzzQuery(equals[i][0]), equals[i][1]);
}
}
);
และใช้งานได้ดี
ข้อได้เปรียบเดียวที่ฉันสามารถนึกได้สำหรับวิธีที่สองนี้คือถ้าปรากฎว่าคุณไม่ต้องการใช้equal
มันจะทำให้การเปลี่ยนแปลงนั้นง่ายขึ้นในจุดเดียว
ในแง่ของความสามารถในการอ่านฉันไม่คิดว่ามันจะเป็นข้อสรุป แต่อย่างใด
คุณสามารถใส่เคส / อินพุตในไฟล์ CSV แยกซึ่งอาจทำให้แก้ไขได้ง่ายขึ้น
คำถามคืออะไร - อนุสัญญาทั่วไปเกี่ยวกับการเขียนการทดสอบหน่วยเหล่านี้คืออะไร?
มีเหตุผลที่คุณไม่ควรใส่มันลงในอาร์เรย์หรือไม่?