什么是单元测试?
单元测试又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。单元测试主要是用来检验程式的内部逻辑,也称为个体测试、结构测试或逻辑驱动测试。通常由撰写程式码的程式设计师负责进行。
通常来说,程式設計師每修改一次程式就會進行最少一次單元測試,在編寫程式的過程中前後很可能要進行多次單元測試,以證實程式達到軟件規格書(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中单元测试框架
简单说来,FireUnit给Firebug增加了一个标签面板,并提供了一些简单的JavaScript API来记录和查看测试。更多http://shawphy.com/2008/12/fireunit.html。
评价:里面有Test.Simple的痕迹,呵呵,John Resig是个非常善于学习并创新的家伙。FireUnit果然在易用性上表现非常出众,非常适合基于Firebug做调试环境的前端工程师。
평가: 사용하기 쉽고 인터페이스가 아름답습니다.
참고:
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의 프레임워크는 다음과 같습니다.
코드는 다음과 같습니다.
"/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참고할 수 있는 예가 많이 있습니다.
예제 다운로드