javaboys

          2007年3月31日 #

          [轉] 在Microsoft Windows中使用Apache

          在Microsoft Windows中使用Apache

          來源:http://lamp.linux.gov.cn/Apache/ApacheMenu/platform/windows.html

          此文檔闡述了如何在Microsoft Windows平臺上安裝、配置和運行Apache 2.2 。 如果你發現了bug,或者希望以其他方式作出貢獻,請使用我們的bug報告頁面

          本文檔的大多數內容假定你是從一個二進制發布版安裝Apache到Windows上。 如果你想自己編譯Apache(可能有助于開發和跟蹤bugs),參看編譯Windows下的Apache

          基于當前的Windows版本狀況,本文檔使用到的縮寫及其意義解釋包括:

          • Windows NT: 指所有基于NT核心的Microsoft Windows操作系統的版本,包括Windows NT, Windows 2000, Windows XP, Windows.NET Server 2003及后續版本。
          • Windows 9x: 指所有定位于家庭使用的Microsoft Windows操作系統的版本,包括 Windows 95 , Windows 98, Windows ME 。

          對操作系統的要求

          Apache 2.2 被設計為在Windows NT上運行。它的二進制安裝程序只能在x86處理器上運行,比如Intel和AMD的芯片。Apache可能也能夠運行在Windows 9x上,但是并沒有經過測試, 也不建議在實際工作的系統上這樣使用。

          任何情況下都必須確保TCP/IP網絡協議已經安裝。如果在Windows 95上運行,必須安裝"Winsock2"升級補丁。 "Winsock2" for Windows 95可以在這里下載。

          如果在NT 4.0上運行,建議安裝Service Pack 6 ,因為Service Pack 4有眾所周知的TCP/IP和Winsock完整性的問題,在以后的Service Pack中解決了這些問題。

          下載 Apache for Windows

          關于Apache最新版本的有關信息可以在http://httpd.apache.org/download.cgi上找到。那里會列出當前發行版本、 所有最近的alpha和beta測試版本以及鏡像web站點和匿名ftp服務器的信息。

          你應該下載帶有.msi擴展名的Apache for Windows版本。 這是一個單一的Microsoft Installer文件,包含了Apache ,可以立即安裝并運行。 還有一個單獨的.zip文件只打包了源碼, 可以用Microsoft Visual C++ (Visual Studio)工具來編譯。

          安裝 Apache for Windows

          Apache的安裝需要有Microsoft Installer 1.2或更高版本。 在Windows 9x中,你可以從這里升級Microsoft Installer到2.0 ,在Windows NT 4.0和2000中,2.0的升級版在這里。Windows XP/2003不需要這個升級。

          注意,使用這個安裝包不能在同一個機器上安裝兩套Apache 2.2。 但是,在同一個機器上,安裝一個1.3系列一個2.2系列的Apache則沒有問題。 如果你需要在同一個機器上安裝兩套不同的2.2版本, 則必須用代碼編譯和安裝Apache

          運行已下載的上述Apache .msi文件。安裝程序會要求提供下列信息:

          1. Network Domain 你的服務器已經或者將要注冊的DNS域名。比如你的服務器的全稱DNS域名是server.mydomain.net ,你應當在這里輸入:mydomain.net

          2. Server Name 你的服務器的全稱DNS域名,如上情況你應當在這里輸入:server.mydomain.net

          3. Administrator's Email Address 服務器管理員的email地址。這個地址將會在默認的出錯頁面上顯示給客戶端。

          4. For whom to install Apache 如果你希望Apache在80端口監聽,并被安裝為服務(即使無人登陸,Apache仍將運行),就選擇"for All Users, on Port 80, as a Service - Recommended";如果你希望將Apache安裝為個人試驗使用,或者已經有一個運行于80端口的WWW服務器,就選擇"only for the Current User, on Port 8080, when started Manually"。

          5. The installation type 選擇Typical會安裝除開發模塊需要使用的源碼和庫以外的所有內容。選擇Custom可以自定義安裝哪些項目。完整安裝大約需要13MB磁盤空間,這其中并不包含你的網站文件所用空間。

          6. Where to install 安裝Apache的文件夾,默認為C:\Program Files\Apache Software Foundation文件夾下的Apache2.2子文件夾。

          安裝期間,Apache將會配置你所選擇的安裝目錄下的conf文件夾中的文件。 但是如果那個目錄下已有同名文件存在,原有文件將不會被覆蓋, 而相應的新文件將會被加上.default擴展名。 所以,舉例來說,如果conf\httpd.conf已經存在,那么不會對它做任何改變, 而新版本conf\httpd.conf的內容將會被寫入文件conf\httpd.conf.default 。 安裝完成以后你應該檢查.default文件中的內容看看有沒有不同, 如果必要,更新你原有的配置文件。

          而且,如果你已經有一個名為htdocs\index.html的文件,它不會被覆蓋掉 (也不會安裝index.html.default文件)。 這意味著你在一個舊版本Apache上安裝新版本是安全的 (但是你必須在安裝之前首先停掉原有服務器然后在安裝完成后重新啟動它)。

          安裝Apache以后,你應該編輯conf目錄下的配置文件。這些文件已在安裝期間被配置好以便Apache能夠從安裝目錄運行,文檔目錄被配置為安裝目錄下的子目錄htdocs 。在你開始真正使用之前還有很多選項需要設置。但是為了盡快開始,可以使用安裝時自動配置的配置文件。

          配置 Apache for Windows

          與Unix系統下的版本一樣,Apache使用conf目錄下的文件進行配置,但是Windows版本有幾個不同的指令,參見指令索引察看全部可用指令。

          Apache for Windows主要的不同點是:

          • 因為Apache for Windows是多線程的,它并不像Unix版本那樣為每個請求使用一個單獨的進程。 而是通常運行兩個Apache進程:一個父進程,和一個處理請求的子進程。在子進程內部由多個單獨的線程來處理每個請求。

            因此與進程管理相關的指令是不同的:

            MaxRequestsPerChild 就像Unix版本中的指令一樣,這條指令控制一個進程退出前將為多少個請求提供服務。 然而,與Unix不同的是,一個進程將為所有請求而不是只為一個請求服務,因此如果設置這條指令,建議將它設為一個很大的值。默認設置 MaxRequestsPerChild 0 使得進程從不退出。

            警告: 啟動新的子進程時將會重新讀入服務器配置文件。如果你修改了httpd.conf ,新的子進程將有可能不能啟動或者可能得到預期之外的結果。

            ThreadsPerChild 是一條新的指令,用來告訴服務器應該使用多少個線程,指明了服務器可以立刻處理的最大連接數;如果你的站點有大量的點擊,請確認你設置了足夠大的值。推薦的默認設置是 ThreadsPerChild 50

          • 接收文件名作為參數的指令必須使用Windows文件名而不是Unix文件名。 但是,因為Apache內部使用Unix風格的名字,你必須使用正斜杠而不是反斜杠。可以使用盤符;如果省略盤符,將假定使用Apache可執行文件所在盤符。

          • Apache for Windows具有運行時裝入模塊的能力,不需要重新編譯。如果Apach在正常情況下編譯,它會在\Apache2.2\modules目錄下安裝許多可選模塊。 要激活它們或其他模塊,必須使用新的LoadModule指令。 舉例來說,要激活狀態模塊,使用下列指令(除了access.conf中的狀態激活指令以外):

            LoadModule status_module modules/mod_status.so

            也可使用創建可加載模塊中的信息。

          • Apache也可以加載ISAPI(Internet Server Applications Programming Interface)擴展,例如被Microsoft IIS服務器和其他一些Windows服務器所使用的。這里有更多相關信息。注意Apache不能加載ISAPI 過濾器。

          • 當運行CGI腳本時,Apache查找腳本解釋器是由ScriptInterpreterSource指令配置的。

          • 由于在Windows下管理具有像.htaccess這樣名字的文件是很困難的,你會發現在配置文件中使用AccessFilename指令改變它的文件名是很有用的。

          • 在Windows NT上,Apache啟動時發生的錯誤將會記入Windows事件日志(event log)。這個機制將在Apache尚不能使用error.log文件的時候運作。你可以通過"事件查看器"的MMC接口查看Windows事件日志。

            注意,在Windows 9x上不存在事件日志機制,因此無法記錄啟動錯誤。

          以服務方式運行Apache for Windows

          Apache僅能夠在Windows NT上作為服務運行。

          你可以選擇在安裝Apache時自動將其安裝為一個服務。如果你選擇"for all users",那么Apache將會被安裝為服務。如果你選擇了"only for the Current User",你可以在安裝后手動將Apache注冊為服務。注意,你必須是Administrators組的成員才能成功注冊服務。

          使用Apache Service Monitor工具,可以查看和管理你所在網絡上的所有機器上安裝的Apache服務的狀態。為了能夠使用這個工具管理Apache服務,你必須首先自動或手動安裝Apache服務。

          你可以在Apache安裝目錄的bin子目錄下,使用如下命令將Apache安裝為Windows NT服務:

          httpd -k install

          如果你想指定服務的名稱,可以使用下面的命令。當你在同一機器上安裝多個Apache服務時,你必須為它們指定不同的名字。

          httpd -k install -n "服務名"

          如果你想為不同名稱的服務使用不同的配置文件,則安裝時需要指定配置文件:

          httpd -k install -n "服務名" -f "c:\files\my.conf"

          如果你使用的是第一個命令,也就是除 -k install 外沒有其它命令行參數,那么被安裝的服務名稱將是:Apache2.2 ,配置文件將使用conf\httpd.conf

          要移除一個Apache服務很簡單:

          httpd -k uninstall

          或者使用下述命令移除特定名稱的Apache服務:

          httpd -k uninstall -n "服務名"

          通常,啟動、重啟、關閉Apache服務的方法是使用Apache Service Monitor工具,另外也可以使用控制臺命令:NET START Apache2.2NET STOP Apache2.2 或者通過Windows服務控制面板。在啟動Apache服務之前,你應當使用下面的命令檢查一下配置文件的正確性:

          httpd -n "服務名" -t

          你可以通過命令行開關來控制Apache服務。要啟動一個已經安裝的Apache服務,可以使用:

          httpd -k start

          要停止一個已經安裝的Apache服務,可以使用:

          httpd -k stop

          httpd -k shutdown

          要重啟一個運行中的Apache服務,強制它重新讀取配置文件,可以使用:

          httpd -k restart

          默認情況下,Apache服務將被注冊為以本地系統用戶(LocalSystem帳號)身份運行。LocalSystem帳號沒有網絡權限,不能通過任何Windows安全機制訪問網絡,包括文件系統、命名管道、DCOM或secure RPC ,但是它對于本地資源卻擁有廣泛的特權。

          永遠不要把網絡權限授予LocalSystem帳號!如果你需要Apache能夠訪問網絡資源,最好按照下述方法為Apache另外建立一個單獨的帳號。

          你應該建立一個單獨的帳號來運行Apache服務。特別是在必須通過Apache訪問網絡資源的時候,我們更加強烈建議你這樣做。

          1. 創建一個普通域用戶帳號,并牢記對應的密碼。
          2. 授予這個新建的帳號作為服務登陸作為操作系統一部分運行權限。在Windows 2000/XP/2003上你可以使用"組策略"或通過"本地安全策略"的MMC接口來完成這個操作。
          3. 確認新建的帳號是Users組的一個成員。
          4. 確認新建的帳號具有讀取和執行(RX)所有文檔和腳本目錄(例如:htdocscgi-bin)的權限。
          5. 確認新建的帳號對Apache的logs目錄具有讀/寫/刪除(RWD)的權限。
          6. 確認新建的帳號對httpd.exe二進制文件具有讀取和執行(RX)的權限。
          一個很好的實踐經驗是賦予運行Apache服務的用戶讀取和執行(RX)整個Apache2.2目錄的權限,并且對logs子目錄具有讀/寫/刪除(RWD)的權限。

          如果你允許使用這個帳號作為一個用戶和服務登錄,你就可以用這個帳號登錄上去測試執行腳本、讀取web頁的權限,還可以通過控制臺窗口啟動Apache 。如果這樣工作正常,你又執行了上述的操作,那么Apache就能夠正常地作為服務運行了。

          錯誤代碼2186是一個很好的提示,說明你需要檢查"登陸為"選項,因為服務器不能訪問必要的網絡資源。

          當啟動Apache服務時你可能會遇到一個來自Windows服務管理器的錯誤信息。 例如,如果你想使用控制面板中的服務小程序啟動Apache,可能會得到下面這條信息:

          Could not start the Apache2.2 service on \\COMPUTER
          Error 1067; The process terminated unexpectedly.

          只要啟動Apache出錯你就會得到這個錯誤信息。為了弄清是什么引起了錯誤, 你應該遵循作為控制臺程序運行Apache中的建議。

          對于讓Apache在Windows 9x下以類似Windows NT服務的方式運行有一些支持。都是高度試驗性的,即使能夠工作,Apache軟件基金會將不會證實其可靠性和未來的支持。繼續進行你自己的冒險吧!

          這兩種"服務"有相當大的區別:

          如果你輸入下列命令,Apache會嘗試啟動,如果成功他將在后臺運行:

          httpd -n "服務名" -k start

          例如,通過桌面的快捷方式運行,如果服務啟動成功一個控制臺窗口會快速閃過并立刻消失。如果啟動時Apache檢測到比如httpd.conf文件中有不正確的設置這樣的問題,則控制臺窗口會保持可見。這樣將顯示一個有助于追蹤錯誤原因的錯誤信息。

          Windows 9x不支持NET START或者NET STOP命令,因此你在命令中必須使用Apache的服務控制選項。你可能希望為每個命令設置一個快捷方式以便你能夠只需要從開始菜單或者桌面一點就能執行所需的操作。

          Apache和Windows 9x沒有提供讓Apache服務以特定的具有網絡權限的用戶身份運行的支持。實際上,Windows 9x在本地機器上根本沒有提供安全性。這就是Apache軟件基金會從不支持使用Windows 9x作為公用httpd服務器的原因。這個便利存在的唯一目的是協助用戶開發web內容和學習Apache服務器,或者也許在一個安全的、私有的網絡上充當intranet服務器。

          作為控制臺程序運行Apache

          雖然通常推薦將Apache作為服務來運行,但是在某些情況下從命令行運行反而更加容易。在Windows 9x上,從命令行運行Apache是推薦的方法,因為這些系統中缺乏可靠的服務支持。

          可以使用下列命令將Apache作為控制臺程序從命令行運行:

          httpd

          Apache將會一直保持運行,直到被Ctl+C組合鍵中斷。

          你還可以在安裝后通過 開始按鈕 --> 程序 --> Apache HTTP Server 2.2.xx --> Control Apache Server 在控制臺中運行Apache 。這將會打開一個控制臺窗口并在其中啟動Apache 。如果你沒有將Apache安裝為服務,該窗口將一直保持打開,直到被Ctl+C組合鍵中斷,并在幾秒鐘后退出。如果你已經將Apache安裝為服務,那么那個快捷方式將會啟動服務,如果Apache服務已經啟動了,則什么也不做。

          你可以在另外一個控制臺窗口中輸入以下命令停止正在運行的Apache服務:

          httpd -k shutdown

          這種方法比使用Ctl+C組合鍵更好,因為它可以讓Apache完成所有當前的操作并且優雅的清理所占用的資源。

          Apache可以被從新啟動,這將導致它重新讀取配置文件,重啟前所有正在進行的操作都將不被打斷的完成。可以使用下面的命令重啟Apache :

          httpd -k restart

          請熟悉Unix版本Apache的用戶注意,這些命令對應于Unix命令 kill -TERM pidkill -USR1 pid 。命令中之所以使用 -k 選項,就是為了提醒用戶這是源自Unix下的kill命令。

          如果Apache控制臺窗口在啟動后出乎意料的立即關閉,請打開一個新的控制臺窗口,切換到Apache的安裝目錄下bin子目錄中,運行httpd命令并讀取錯誤信息。然后再到日志目錄中查看error.log文件以尋找可能的配置錯誤。如果你的Apache采用的是默認安裝,這些命令應當是:

          c:
          cd "\Program Files\Apache Software Foundation\Apache2.2\bin"
          httpd

          等候Apache停止,或者使用Ctl+C組合鍵,然后輸入下列內容:

          cd ..\logs
          more < error.log

          可以在命令行中為Apache指定一個配置文件,有兩種方法可以在命令行中指定配置文件:

          • -f 可以指定一個絕對路徑或相對路徑的配置文件:

            httpd -f "c:\my server files\anotherconfig.conf"

            httpd -f files\anotherconfig.conf

          • -n 可以指定已安裝的Apache服務所使用的配置文件:

            httpd -n "服務名"

          在這兩種情況下,必須在配置文件中設置正確的ServerRoot值。

          如果你沒有使用 -f-n 指定配置文件的路徑,Apache將會使用硬編碼在服務器內的路徑,比如:conf\httpd.conf 。這個內置的路徑是相對于安裝目錄的,要想檢查這個內置的路徑,你可以通過 -V 開關調用Apache ,查看名為SERVER_CONFIG_FILE的變量值:

          httpd -V

          Apache將會按照下列順序檢查ServerRoot值:

          1. 通過 -C 命令行開關指定的ServerRoot值。
          2. 通過 -d 命令行開關指定的值。
          3. 當前工作目錄。
          4. 安裝二進制文件時在注冊表中登記的項目。
          5. 編譯進二進制文件的值,該值默認為:/apache ,你可以使用 httpd -V 命令查看顯示出來的HTTPD_ROOT變量的值。

          在安裝過程中,將會在注冊表中新建一個版本特定的注冊表鍵。這個鍵的位置取決于安裝類型。如果你選擇的是"for all users",那么將位于HKEY_LOCAL_MACHINE分支下,如下所示:

          HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.2.4

          如果你選擇的是"for the current user only",那么將位于HKEY_CURRENT_USER分支下,其中的內容取決于當前登陸的用戶,如下所示:

          HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.2.4

          這個鍵已經被編譯進了服務器,使得你可以測試新版本而又不影響老版本。當然,你必須注意不要在同一個目錄中安裝兩個不同的版本。

          如果你沒有使用二進制安裝,在某些情況下Apache將會抱怨注冊表鍵丟失。如果在這種情況下服務器仍然可以找到正確的配置文件,那么就可以安全的忽略它。

          這個注冊表鍵其實就是包含conf子目錄的ServerRoot目錄。Apache將要從中讀取httpd.conf文件。如果該配置文件中又包含了一個ServerRoot指令,并且指向的目錄與注冊表中登記的不同,Apache將以配置文件中的指令為準。如果你復制了配置文件或者整個Apache目錄到一個新的位置,你要千萬記得修改httpd.conf中的ServerRoot指令,使其指向正確的位置。

          安裝的測試

          啟動Apache運行以后(不管是控制臺窗口還是作為服務), 它會在80端口上進行監聽(除非你改變了配置文件中的Listen指令。 要連接到服務器訪問默認頁面,啟動一個瀏覽器并輸入下列URL :

          http://localhost/

          應該出現一個歡迎頁面,并且頁面上有到Apache用戶手冊的鏈接。 如果什么都沒有發生或是得到了一個錯誤,檢查logs子文件夾中的 error.log文件。如果你的主機沒有聯網或者DNS配置有嚴重問題,你也許需要輸入這樣的URL :

          http://127.0.0.1/

          如果你將Apache配置為在非80端口監聽(比如:8080),你應當使用下面的URL明確指定端口:

          http://127.0.0.1:8080/

          一旦你的基本配置可以工作了,你應該編輯conf目錄下的文件來恰當地配置Apache 。 此外,如果你改變了作為NT服務運行的Apache的配置,你應該首先嘗試從命令行啟動來保證能夠正確地啟動Apache服務。

          因為Apache不能與其他TCP/IP應用程序共享同一端口,你可能需要先停止或者卸載或者重新配置某些特定的服務。這包括(但不限于)別的web服務器和BlackIce那樣的防火墻。如果你只能在禁止其他服務的情況下啟動Apache ,那么需要重新配置Apache或者其他程序使它們不監聽同一個TCP/IP端口。

          posted @ 2007-03-31 17:59 javaboys 閱讀(248) | 評論 (0)編輯 收藏

          JAVA 常用的API

          Java API,中文API(下載)和常用英文API(在線)

          在寫Java程序時,Java API文檔是必不可少的。
          中文API下載來自sun.com.cn.
          可通下面下載地址進行下載:
          http://gceclub.sun.com.cn/Java_Docs/html_zh_CN.zip

          英文API,包括了以下內容的API,可通過在線瀏覽.
          JDK 1.6.0_beta API: http://www.dlog.cn/javadoc/jdk1_6_0_beta2/index.html
          J2EE 5.0 Update 1 : http://java.sun.com/javaee/5/docs/api/
          Struts 1.3.5 API: http://www.dlog.cn/javadoc/struts-1.3.5/docs/apidocs/index.html
          Hibernate 3.2 ga : http://www.dlog.cn/javadoc/hibernate-3.2/doc/api/index.html
          Lucene 2.0 API : http://www.dlog.cn/javadoc/lucene-2.0.0/index.html
          Jakarta-POI : http://www.dlog.cn/javadoc/poi-2.5.1-final/index.html
          Commons-Lang 2.2 : http://www.dlog.cn/javadoc/commons-lang-2.2/docs/api/index.html
          Commons-beanutils 1.7 : http://www.dlog.cn/javadoc/commons-beanutils-1.7.0/docs/api/index.html
          Commons-Collections 3.2 : http://www.dlog.cn/javadoc/commons-collections-3.2/docs/apidocs/index.html
          Commons-Digester 1.7 : http://www.dlog.cn/javadoc/commons-digester-1.7/docs/apidocs/index.html
          Commons-Httpclient 3.1: http://www.dlog.cn/javadoc/commons-httpclient-3.1-beta1/docs/apidocs/index.html
          htmlparser 1.6: http://www.dlog.cn/javadoc/htmlparser1_6/index.html


          中文幫助文檔
          Apache 相關 http://lamp.linux.gov.cn/Apache/ApacheMenu/sitemap.html

          posted @ 2007-03-31 17:44 javaboys 閱讀(767) | 評論 (0)編輯 收藏

          JUnit入門 [程序開發Java]

          JUnit入門 [程序開發Java]
          2007-03-31 01:10:21
           一、簡介

            JUnit是一個開源的java單元測試框架。在1997年,由 Erich Gamma 和 Kent Beck 開發完成。這兩個牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(你覺得眼熟一點都不奇怪)。
            正如常言道:“麻雀雖小,五臟俱全。” JUnit設計的非常小巧,但是功能卻非常強大。
            下面是JUnit一些特性的總結:
            1) 提供的API可以讓你寫出測試結果明確的可重用單元測試用例
            2) 提供了三種方式來顯示你的測試結果,而且還可以擴展
            3) 提供了單元測試用例成批運行的功能
            4) 超輕量級而且使用簡單,沒有商業性的欺騙和無用的向導
            5) 整個框架設計良好,易擴展
            對不同性質的被測對象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。由于本文的性質,以下僅以Class測試為例。

            二、下載

            點擊http://www.junit.org可以下載到最新版本的JUnit,本文使用的為3.8.1版。至于安裝或者配置之類,你只需要輕松的將下載下來的壓縮包中的jar文件,放到你工程的classpath中就可以了。
            這樣,你的系統中就可以使用JUnit編寫單元測試代碼了(是不是很簡單)!

            三、HelloWorld

            記得在幾乎每本語言教學書上都能找到HelloWorld這個入門代碼。今天在這里,我們也從一個簡單到根本不用單元測試的例子入手。這是一個只會做兩數加減的超級簡單的計算器(小學一年級必備極品)。代碼如下:

            public class SampleCalculator
            {
             public int add(int augend , int addend)
             {
             return augend + addend ;
             }

             public int subtration(int minuend , int subtrahend)

             {

             return minuend - subtrahend ;

             }

            }

            將上面的代碼編譯通過。下面就是我為上面程序寫的一個單元測試用例:

            //請注意這個程序里面類名和方法名的特征
            import junit.framework.TestCase;
            public class TestSample extends TestCase

            {

             public void testAdd()

             {

            SampleCalculator calculator = new SampleCalculator();

             int result = calculator.add(50 , 20);

             assertEquals(70 , result);

             }

             public void testSubtration()

             {

             SampleCalculator calculator = new SampleCalculator();

             int result = calculator.subtration(50 , 20);

             assertEquals(30 , result);

             }

            }

            好了,在DOS命令行里面輸入javac TestSample.java 將測試類編譯通過。然后再輸入 java junit.swingui.TestRunner TestSample 運行測試類,你會看到如下的窗口。

            綠色說明單元測試通過,沒有錯誤產生;如果是紅色的,則就是說測試失敗了。這樣一個簡單的單元測試就完成了.

            按照框架規定:編寫的所有測試類,必須繼承自junit.framework.TestCase類;里面的測試方法,命名應該以Test開頭,必須是public void 而且不能有參數;而且為了測試查錯方便,盡量一個TestXXX方法對一個功能單一的方法進行測試;使用assertEquals等junit.framework.TestCase中的斷言方法來判斷測試結果正確與否。

            你可以對比著上面測試類中的實現來體會下規定——很簡單!而且你在這個測試類中有加入多少個測試方法,就會運行多少個測試方法。

            四、向前一步

            學完了HelloWorld,你已經可以編寫標準的單元測試用例了。但是還有一些細節,這里還要說明一下。不要急,很快的!
            另外你是否注意到,上面彈出窗口的一個細節,在綠條下面有Errors、Failures統計。這兩者有何區別呢?
            Failures作為單元測試所期望發生的錯誤,它預示你的代碼有bug,不過也可能是你的單元測試代碼有邏輯錯誤(注意是邏輯錯誤)。Errors不是你所期待的,發生了Error你可以按照下面的順序來檢查:

            檢查測試所需的環境,如:數據庫連接

            檢查單元測試代碼

            檢查你的系統代碼

            五、成批運行test case

            這是前面提到的JUnit特性之一。它方便于系統單元測試的成批運行。使用起來也是非常簡單,先看下使用代碼:

            import junit.framework.Test;

            import junit.framework.TestSuite;

            public class TestAll{

             public static Test suite(){

             TestSuite suite = new TestSuite("TestSuite Test");

             suite.addTestSuite( TestSample.class);

             return suite;

             }

            }

            這個測試程序的編譯、運行,和上面TestSample的方式是一樣的。

            javac TestAll.java

            java junit.swingui.TestRunner TestAll

            怎么樣?這樣你在suite方法里面添加幾個TestCase就會運行幾個,而且它也可以添加TestSuite來將小一點的集合加入大的集合中來,方便了對于不斷增加的TestCase的管理和維護。

            你覺得suite方法的作用是不是于java應用程序的main很類似?并且這里的suite必須嚴格遵守上面的寫法!



          posted @ 2007-03-31 15:49 javaboys 閱讀(161) | 評論 (0)編輯 收藏

          僅列出標題  
          主站蜘蛛池模板: 同江市| 工布江达县| 永登县| 花垣县| 祁阳县| 东阳市| 华池县| 东丰县| 社会| 德安县| 汝州市| 沙雅县| 关岭| 酉阳| 凉城县| 英德市| 绥宁县| 岳池县| 中山市| 剑阁县| 彝良县| 重庆市| 上蔡县| 磐石市| 镶黄旗| 万宁市| 呼和浩特市| 临颍县| 清水河县| 大理市| 寿宁县| 康定县| 河津市| 册亨县| 得荣县| 焉耆| 仪征市| 余庆县| 古交市| 合肥市| 资兴市|