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 파일에 넣을 수 있으므로 수정이 더 쉬워 질 수 있습니다.
문제는 이런 종류의 단위 테스트 작성에 대한 일반적인 규칙은 무엇입니까?
그것들을 배열에 넣지 말아야 할 이유가 있습니까?