>  기사  >  웹 프론트엔드  >  JQuery team_jquery에서 만든 자바스크립트 단위 테스트 도구인 QUnit 소개

JQuery team_jquery에서 만든 자바스크립트 단위 테스트 도구인 QUnit 소개

WBOY
WBOY원래의
2016-05-16 18:33:511087검색

什么是单元测试?

单元测试又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。单元测试主要是用来检验程式的内部逻辑,也称为个体测试、结构测试或逻辑驱动测试。通常由撰写程式码的程式设计师负责进行。

通常来说,程式設計師每修改一次程式就會進行最少一次單元測試,在編寫程式的過程中前後很可能要進行多次單元測試,以證實程式達到軟件規格書(en:Specification)要求的工作目標,沒有臭蟲;雖然单元测试不是什么必须的,但也不坏,這牽涉到專案管理的政策決定。

—— 维基百科 (中文英文)

单元测试的优点

1、它是一种验证行为。
    程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支缓。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们就可以更自由的对程序进行改进。

2、它是一种设计行为。
    编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。

3、它是一种编写文档的行为。
    单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。

4、它具有回归性。
    自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。

参考:

http://miiceic.org.cn/phrase/200602281036115.html

http://tech.ddvip.com/2009-06/1245992965124860.html

http://www.blogjava.net/square/articles/158103.html

javscript中单元测试框架

  • jsUnit
    系统化的解决方案,基于XNuit规范,如果你会使用jUnit、NUnit等框架,对这个应该会很容易上手,且包括服务器端(Java的)。http://www.jsunit.net/
    评价:非常全面,专业,适合大型企业级开发。
  • Test.Simple & Test.More
    这个是jQuery之父John Resig在他的著作《Pro Javascript》中推荐的测试框架http://openjsan.org/doc/t/th/theory/Test/Simple/0.21/lib/Test/Simple.html
    评价:非常容易上手,非常简洁,适合中小型项目快速引入单元测试。
  • FireUnit
    这个是John Resig另起炉灶做的,在他的博客John Resig - FireUnit: JavaScript Unit Testing Extension,发布了他与Jan Odvarko合作开发的基于Firebug的扩展FireUnit

    简单说来,FireUnit给Firebug增加了一个标签面板,并提供了一些简单的JavaScript API来记录和查看测试。更多http://shawphy.com/2008/12/fireunit.html
    评价:里面有Test.Simple的痕迹,呵呵,John Resig是个非常善于学习并创新的家伙。FireUnit果然在易用性上表现非常出众,非常适合基于Firebug做调试环境的前端工程师。

  • QUnit
    QUnit은 jQuery 팀에서 개발한 JavaScript 유닛 테스트 도구입니다. http://docs.jquery.com/QUnit에서 다운로드할 수 있습니다.

    평가: 사용하기 쉽고 인터페이스가 아름답습니다.

참고:
http://www.cnblogs.com/kaima/archive/2009/04/09/javascritp_unittest.html

QUnit 소개에 집중해보자

QUnit 소개

JavaScript에는 여전히 좋은 가독성이 필요하므로 단위 테스트 없이 리팩토링하는 것은 신뢰할 수 없다는 것을 알고 있습니다. 좋은 단위 테스트 적용 범위는 리팩토링을 더 쉽고 비용 효율적으로 만들어줍니다. 단위 테스트 프레임워크는 뛰어난 JavaScript 프로그래머에게 매우 필요합니다. QUnit은 jQuery 및 해당 플러그인을 테스트하는 데 사용되는 강력하고 사용하기 쉬운 JavaScript 코드입니다.

QUnit 사용

먼저 http://docs.jquery.com/QUnit에서 qunit.js를 찾아야 합니다. > >qunit.css두 파일, Qunit의 프레임워크는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
"http://www.w3.org /TR/html4/loose .dtd">



<script> <br>$(document).ready(function() { <br>}); <br></ 스크립트> <br></head> <br><body> <br><h1 id="qunit-header">QUnit 예</h1> "></ h2> <br><h2 id="qunit-userAgent"></h2> <br><ol id="qunit-tests"></ol> <br></body> <br></html> <br><br> <br>참고: 본문의 요소 ID는 다음 형식으로 지정해야 하며, 그렇지 않으면 정상적으로 표시되지 않습니다. $(document).ready( )middle에 테스트할 내용이 있습니다. </div>먼저 간단한 예시를 살펴보겠습니다<br><br><br><div class="codetitle"> <span>코드 복사<a style="CURSOR: pointer" data="20043" class="copybut" id="copybut20043" onclick="doCopy('code20043')"><u></u> 코드는 다음과 같습니다.</a></span> </div>&lt ;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <div class="codebody" id="code20043">"http://www.w3.org/TR/html4/loose.dtd"<br> <html> <br><head> <br><script src="http://code.jquery.com/jquery-latest.js"></script>
<링크 ="stylesheet " href="qunit.css" type="text/css" media="screen" />

<script> $(document ).ready(function() { <br>test("기본 테스트 예", function() { <br>ok(true, "이 테스트는 괜찮습니다"); <br>var value = "hello "; <br>equals("hello", value, "값은 hello일 것으로 예상됩니다."); <br>}); <br>module("Module A"); <br>test("모듈 내의 첫 번째 테스트 ", function () { <br>ok(true, "모두 통과"); <br>}); <br>test("모듈 내의 두 번째 테스트", function() { <br>ok(true, "all pass") ; <br>}); <br>module("모듈 B"); <br>test("다른 테스트", function() { <br>expect(2); <br>equals(true , false, "테스트 실패"); <br>}) <br></script> head>

QUnit 예시





    >< /html>


    얻은 결과:





    module( name, lifecycle )qunit2
    : 테스트 모듈을 그룹화하는 데 사용되며, [lifecycle]은 테스트 초기화 및 테스트 정리에 사용됩니다.

    다음 예시 참고: 코드 복사

    코드는 다음과 같습니다.

    ok(true, "각 테스트 후에 하나의 추가 어설션")
    }
    })
    test("설정 및 분해로 테스트", function () {
    Expect(3);
    same(this.testData, "foobar")
    })


    비동기 테스트:




    코드 복사

    코드는 다음과 같습니다.
    codeasyncTest("Asynchronous Test", function() { expect( 2); $.getJSON ("/Home/JosnDemo", function(result) { equals(result.x, "sss"); equals(result.y, "sss"); 시작();
    })


    "/Home/JosnDemo"는 json 데이터를 제공하는 주소입니다. 여기서 주의할 점은 Assertion 함수를 작성한 후 start() 함수를 호출해야 한다는 것입니다.

    Qunit은 테스트 중에 몇 가지 고급 애플리케이션도 제공합니다. 예를 들어 특정 테스트 시작 시 일부 작업을 수행하려면 http://docs.jquery.com/QUnit을 참조하세요. #Integration_into_Browser_Automation_Tools

    JQuery의 많은 핵심 제품군은 Qunit을 사용하여 테스트되었습니다. http://docs.jquery.com/QUnit#Reference_Test_Suites참고할 수 있는 예가 많이 있습니다.
    예제 다운로드

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    이전 기사:jquery 1.4.2 출시! 주로 성능과 API_jquery다음 기사:jquery 1.4.2 출시! 주로 성능과 API_jquery

    관련 기사

    더보기