1. QUnit이란
QUnit(http://qunitjs.com/)은 코드 디버깅에 도움이 될 수 있는 매우 강력한 자바스크립트 단위 테스트 프레임워크입니다. 이는 jQuery 팀 구성원이 작성했으며 jQuery의 공식 테스트 제품군입니다. 그러나 QUnit은 일반적으로 일반 자바스크립트 코드를 테스트하는 데 충분하며, Rhino나 V8과 같은 일부 자바스크립트 엔진을 통해 서버측 JavaScript를 테스트하는 것도 가능할 수도 있습니다.
'단위 테스트' 개념이 낯설더라도 걱정하지 마세요. 이해하기 어렵지 않습니다:
간단히 말하면, 코드의 모든 기능에 대한 테스트를 작성하고 모든 테스트가 통과하면 코드에 결함이 없는지 확인할 수 있습니다(일반적으로 테스트가 얼마나 좋은지에 따라 달라집니다). ) 철저하게 의존합니다).
2. 코드를 테스트해야 하는 이유
이전에 단위 테스트를 작성해 본 적이 없다면 웹사이트에 코드를 직접 업로드하고 문제가 있는지 잠시 클릭한 후 발견한 문제를 해결해 보세요. 이 방법을 사용하면 문제가 많습니다. 방법으로.
우선 지루하네요. 클릭하는 것은 실제로 쉬운 일이 아닙니다. 모든 것이 클릭되었는지 확인해야 하고 한두 번 놓칠 가능성이 높기 때문입니다.
둘째, 테스트를 위해 수행한 모든 작업은 재사용이 불가능하므로 회귀가 어렵습니다. 회귀란 무엇입니까? 코드를 작성하고, 테스트하고, 발견한 결함을 수정한 다음 릴리스한다고 상상해 보세요. 이 시점에서 사용자는 새로운 버그에 대한 피드백을 보내고 몇 가지 새로운 기능이 필요합니다. 코드로 돌아가서 이러한 새로운 결함을 수정하고 새로운 기능을 추가합니다. 다음에 일어날 수 있는 일은 일부 오래된 결함이 다시 나타나는 것입니다. 이것을 "회귀"라고 합니다. 이제 다시 클릭해야 하며, 오래된 버그를 아직 발견하지 못할 가능성이 높습니다. 발견하더라도 문제가 회귀로 인해 발생했다는 사실을 알아내기까지는 시간이 좀 걸릴 것입니다. 단위 테스트를 사용하면 결함을 찾기 위한 테스트를 작성하고, 코드가 수정되면 테스트를 다시 필터링합니다. 회귀가 발생하면 일부 테스트는 실패하게 되며 이를 쉽게 식별하고 코드의 어느 부분에 오류가 포함되어 있는지 알 수 있습니다. 이제 방금 수정한 내용을 알았으므로 쉽게 해결할 수 있습니다.
특히 웹 개발에서 단위 테스트의 또 다른 장점은 브라우저 간 호환성 테스트를 쉽게 한다는 것입니다. 다른 브라우저에서 테스트 사례를 실행하면 됩니다. 한 브라우저에 문제가 있으면 문제를 수정하고 테스트 사례를 다시 실행하여 다른 브라우저에서 회귀가 발생하지 않는지 확인하세요. 모든 대상 브라우저가 이를 지원한다고 가정해 보겠습니다.
John Resig의 프로젝트인 TestSwarm(http://testswarm.com/)을 언급하고 싶습니다. 배포를 통해 Javascript 단위 테스트를 다음 단계로 끌어올렸습니다. 많은 테스트 사례가 있는 웹사이트이며 누구나 거기에 가서 일부 테스트 사례를 실행할 수 있으며 결과는 서버로 다시 반환됩니다. 이러한 방식으로 코드는 다양한 브라우저와 플랫폼에서도 매우 빠르게 테스트될 수 있습니다.
3. QUnit으로 단위 테스트를 작성하는 방법
그렇다면 QUnit으로 단위 테스트를 올바르게 작성하려면 어떻게 해야 할까요? 먼저 테스트 환경을 설정해야 합니다.
断言是一个命题, 预测你的代码的返回结果.
运行断言,你应该把它们放入测试案例:
ok(isEven(0), '0은 짝수입니다');
ok(isEven(2), 'So is two') ;
ok(isEven(-4), '그래서 음수 4입니다');
ok(!isEven(1), '1은 짝수가 아닙니다');
ok(!isEven(- 7), '둘 다 음수 7이 아닙니다');
})
저희가 정한 것은 isEven입니다.会返回错误答案。
我们首先调用 test(),它构建了一个测试案例;第一个参数是一个将被显示在结果中的字符串,第二个参数是包括我们断主主的一个回调函数。
저희는 5个断言,所写了5个是布尔정말 그렇습니다.要得到的,只要你运行测试:
4、深入school习参考
以上只简单的介绍了 qunit.js ,其断言方法还有很多,具体可参考 api 文档:
单元测试是个你发布你的代码前测试你的代码的不常好的舌舌。如果你以前没有写过任何的单元测试,现单是时候开始了!