Đây là một ví dụ cơ bản về những gì bài kiểm tra đơn vị của tôi cần, sử dụng 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>
Bây giờ tôi đã nghĩ rằng điều này là một chút lặp đi lặp lại.
Có thể đặt tất cả các đầu vào / đầu ra thành một mảng và lặp qua nó.
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]);
}
}
);
Và điều này hoạt động tốt.
Ưu điểm duy nhất tôi có thể nghĩ đến cho phương pháp thứ hai này, là nếu nó thực sự không muốn sử dụng equal
thì việc thay đổi đó ở một điểm sẽ dễ dàng hơn.
Về khả năng đọc, tôi không nghĩ đó là kết luận, dù tôi có lẽ thích cái thứ hai hơn.
Tóm tắt thêm, bạn có thể đặt các trường hợp đầu vào / đầu ra vào một tệp CSV riêng biệt, điều này có thể giúp sửa đổi dễ dàng hơn.
Câu hỏi là - các quy ước chung xung quanh việc viết các loại bài kiểm tra đơn vị này là gì?
Có một lý do bạn không nên đặt chúng vào mảng?