單元測試一般是做爲軟件測試中基礎的測試類型,用於測試單獨的模塊是否能夠正常工做。它於功能測試不一樣,它更加關注的是代碼內部的邏輯,而非是用戶的需求。javascript
前面粗略了介紹了單元測試的定義,詳細的解釋是:單元測試也稱爲模塊測試或組件測試。在軟件開發過程當中,檢查軟件的單個單元或模塊是否正常工做,它是由開發人員在開發人員的環境中完成的。php
軟件測試一般劃分爲四個層次,每一個層次都會去驗證軟件產品的功能,質量和性能指標。它們是:單元測試,集成測試,系統測試和驗收測試。java
一般單元測試是使用白盒測試的方法node
單元測試能夠是手動測試或者是自動化測試git
它做爲測試層次的第一層,一般是在集成測試以前完成。程序員
它須要由對於代碼內部邏輯熟悉的人執行,一般是開發或者是白盒測試人員。github
首先須要準備單元測試計劃:api
其次是要準備測試用例和腳本:瀏覽器
最後是單元測試的執行。安全
市面上有不少單元測試的工具,它們可用於協助單元測試。具體的單元測試的工具的選擇仍是要根據項目的具體狀況決定,好比說項目的具體技術棧,是否能夠重用已有的單元測試工具等。咱們將提供如下幾個示例:
Junit:
Junit的目標是爲JVM開發人員開發一個基礎測試的測試框架。這包括關注java 8和更高版本,以及支持多種不一樣風格的測試。
TestNG:
TestNG是一個受JUnit和NUnit啓發的測試框架,可是它引入了一些新的功能,這些功能使它更增強大和易於使用,例如:
NUnit:
它是.net語言的單元測試框架。最初是從JUnit移植而來的,目前的產品版本3已經被徹底重寫了,它有許多新特性,而且支持各類各樣的.NET平臺。
xUnit.net:
xUnit.net是一個免費的、開源的、面向社區的.net框架單元測試工具xunit.net是由nunit v2的原始發明者編寫的,它是用於c、f、vb.net和其餘.net語言單元測試的最新技術。xunit.net與resharper、coderash、testdriven.net和xamarin一塊兒工做。它是.NET基金會的一部分,根據他們的行爲準則運做。它是根據Apache 2(OSI批准的許可證)受權的。
JMockit:
JMockit是開源的單元測試工具jmockit是一個用於開發人員測試的java工具包,包括模擬api和代碼覆蓋工具。
EMMA:
EMMA是一個用於測量和報告java代碼覆蓋率的開源工具包。EMMA支持大規模的企業軟件開發,同時保持單個開發人員的快速工做和迭代團隊中的每一個開發人員如今均可以避免費得到代碼覆蓋率,最主要的是能夠很快的得到覆蓋率!
PHPUnit:
PHPUnit是一個面向程序員的php測試框架。它是單元測試框架的xunit架構的一個實例。
Cantata:
Cantata是一個單元和集成測試工具,使開發人員可以在本地和嵌入式目標平臺上驗證標準兼容或業務關鍵代碼。
Cantata經過自動化,幫助加速符合標準的動態測試要求:
TestComplete:
TestComplete是一個適用於多種應用類型和技術的自動化測試環境,包括(但不限於)Windows、.NET、WPF、Visual C++、Visual Basic、Delphi、C++Builder、Java和Web應用程序和服務。
Mocha:
Mocha是一個功能豐富的javascript測試框架,運行在node.js和瀏覽器中,使異步測試變得簡單有趣。MOCA測試連續運行,容許靈活且準確的報告,同時將異常異常映射到正確的測試用例。託管在github上。
Jasmine:
Jasmine是一個用於測試JavaScript代碼的行爲驅動開發框架它不依賴於任何其餘JavaScript框架它不須要dom。並且它有一個乾淨、明顯的語法,因此您能夠輕鬆地編寫測試。
單元測試做爲測試的第一層次,被很早引入項目。因此在項目開始前,咱們同時須要對單元測試的技術選型和測試案例的計劃進行準備。這樣才能夠在項目研發階段,同時實現單元測試,以保證功能模塊的功能。若是大夥有關於單元測試的一些見解,也請留言區回覆和分享。