??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕视频在线免费,国产精品劲爆视频,成人中文视频http://www.aygfsteel.com/javaboys/zh-cnWed, 18 Jun 2025 06:14:39 GMTWed, 18 Jun 2025 06:14:39 GMT60[转] 在Microsoft Windows中用Apachehttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107666.htmljavaboysjavaboysSat, 31 Mar 2007 09:59:00 GMThttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107666.htmlhttp://www.aygfsteel.com/javaboys/comments/107666.htmlhttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107666.html#Feedback0http://www.aygfsteel.com/javaboys/comments/commentRss/107666.htmlhttp://www.aygfsteel.com/javaboys/services/trackbacks/107666.html

在Microsoft Windows中用Apache

来源Q?a >http://lamp.linux.gov.cn/Apache/ApacheMenu/platform/windows.html

此文档阐qC如何在Microsoft Windowsq_上安装、配|和q行Apache 2.2 ?如果你发CbugQ或者希望以其他方式作出贡献Q请使用我们?a >bug报告面?/p>

本文档的大多数内容假定你是从一个二q制发布版安装Apache到Windows上?如果你想自己~译Apache(可能有助于开发和跟踪bugs)Q参?a >~译Windows下的Apache?/p>

Z当前的Windows版本状况Q本文档使用到的~写及其意义解释包括Q?/strong>

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

Ҏ作系l的要求

Apache 2.2 被设计ؓ在Windows NT上运行。它的二q制安装E序只能在x86处理器上q行Q比如Intel和AMD的芯片。Apache可能也能够运行在Windows 9x上,但是q没有经q测试, 也不在实际工作的pȝ上这样用?/p>

M情况下都必须保TCP/IP|络协议已经安装。如果在Windows 95上运行,必须安装"Winsock2"升补丁?"Winsock2" for Windows 95可以?a >q里下蝲?/p>

如果在NT 4.0上运行,安装Service Pack 6 Q因为Service Pack 4有众所周知的TCP/IP和Winsock完整性的问题Q在以后的Service Pack中解决了q些问题?/p>

下蝲 Apache for Windows

关于Apache最新版本的有关信息可以?a >http://httpd.apache.org/download.cgi上找到。那里会列出当前发行版本?所有最q的alpha和beta试版本以及镜像web站点和匿名ftp服务器的信息?/p>

你应该下载带?code>.msi扩展名的Apache for Windows版本?q是一个单一的Microsoft Installer文gQ包含了Apache Q可以立卛_装ƈq行?q有一个单独的.zip文g只打包了源码Q?可以用Microsoft Visual C++ (Visual Studio)工具来编译?/p>

安装 Apache for Windows

Apache的安装需要有Microsoft Installer 1.2或更高版本?在Windows 9x中,你可以从q里升Microsoft Installer?.0 Q在Windows NT 4.0?000中,2.0的升U版?a >q里。Windows XP/2003不需要这个升U?/p>

注意Q用这个安装包不能在同一个机器上安装两套Apache 2.2?但是Q在同一个机器上Q安装一?.3pd?/strong>一?.2pd的Apache则没有问题?如果你需要在同一个机器上安装两套不同?.2版本Q?则必?a >用代码编译和安装Apache

q行已下载的上述Apache .msi文g。安装程序会要求提供下列信息Q?/p>

  1. Network Domain 你的服务器已l或者将要注册的DNS域名。比如你的服务器的全UDNS域名?code>server.mydomain.net Q你应当在这里输入:mydomain.net

  2. Server Name 你的服务器的全称DNS域名Q如上情况你应当在这里输入:server.mydomain.net

  3. Administrator's Email Address 服务器管理员的email地址。这个地址会在默认的出错面上显C给客户端?/p>

  4. For whom to install Apache 如果你希望Apache?0端口监听Qƈ被安装ؓ服务(即无h登陆QApache仍将q行)Q就选择"for All Users, on Port 80, as a Service - Recommended"Q如果你希望Apache安装Z验用,或者已l有一个运行于80端口的WWW服务器,选择"only for the Current User, on Port 8080, when started Manually"?/p>

  5. The installation type 选择Typical会安装除开发模块需要用的源码和库以外的所有内宏V选择Custom可以自定义安装哪些项目。完整安装大U需?3MB盘I间Q这其中q?em>不包?/em>你的|站文g所用空间?/p>

  6. Where to install 安装Apache的文件夹Q默认ؓC:\Program Files\Apache Software Foundation文g夹下?code>Apache2.2子文件夹?/p>

安装期间QApache会配置你所选择的安装目录下?code>conf文g夹中的文件?但是如果那个目录下已有同名文件存在,原有文g不会被覆盖Q?而相应的新文件将会被加上.default扩展名?所以,举例来说Q如?code>conf\httpd.conf已经存在Q那么不会对它做M改变Q?而新版本conf\httpd.conf的内容将会被写入文gconf\httpd.conf.default ?安装完成以后你应该检?code>.default文g中的内容看看有没有不同, 如果必要Q更C原有的配|文件?/p>

而且Q如果你已经有一个名?code>htdocs\index.html的文Ӟ它不会被覆盖?(也不会安?code>index.html.default文g)?q意味着你在一个旧版本Apache上安装新版本是安全的 (但是你必d安装之前首先停掉原有服务器然后在安装完成后重新启动它)?/p>

安装Apache以后Q你应该~辑conf目录下的配置文g。这些文件已在安装期间被配置好以便Apache能够从安装目录运行,文档目录被配|ؓ安装目录下的子目?code>htdocs 。在你开始真正用之前还有很多选项需要设|。但是ؓ了尽快开始,可以使用安装时自动配|的配置文g?/p>

配置 Apache for Windows

与Unixpȝ下的版本一PApache使用conf目录下的文gq行配置Q但是Windows版本有几个不同的指oQ参?a >指o索引察看全部可用指o?/p>

Apache for Windows主要的不同点是:

  • 因ؓApache for Windows是多U程的,它ƈ不像Unix版本那样为每个请求用一个单独的q程?而是通常q行两个Apacheq程Q一个父q程Q和一个处理请求的子进E。在子进E内部由多个单独的线E来处理每个h?/p>

    因此与进E管理相关的指o是不同的Q?/p>

    MaxRequestsPerChild 像Unix版本中的指o一Pq条指o控制一个进E退出前ؓ多少个请求提供服务?然而,与Unix不同的是Q一个进E将为所有请求而不是只Z个请求服务,因此如果讄q条指oQ徏议将它设Z个很大的倹{默认设|?MaxRequestsPerChild 0 使得q程从不退出?/p>

    警告Q?启动新的子进E时会重新d服务器配|文件。如果你修改?code>httpd.conf Q新的子q程有可能不能启动或者可能得到预期之外的l果?/strong>

    ThreadsPerChild 是一条新的指令,用来告诉服务器应该用多个U程Q指明了服务器可以立d理的最大连接数Q如果你的站Ҏ大量的点击,L认你讄了够大的倹{推荐的默认讄?ThreadsPerChild 50 ?/p>

  • 接收文g名作为参数的指o必须使用Windows文g名而不是Unix文g名?但是Q因为Apache内部使用Unix风格的名字,你必M用正斜杠而不是反斜杠。可以用盘W;如果省略盘符Q将假定使用Apache可执行文件所在盘W?/p>

  • Apache for Windowshq行时装入模块的能力Q不需要重新编译。如果Apach在正常情况下~译Q它会在\Apache2.2\modules目录下安装许多可选模块?要激zd们或其他模块Q必M用新?code class="directive">LoadModule指o?举例来说Q要Ȁzȝ态模块,使用下列指o(除了access.conf中的状态激zL令以?Q?/p>

    LoadModule status_module modules/mod_status.so

    也可使用创徏可加载模?/a>中的信息?/p>

  • Apache也可以加载ISAPI(Internet Server Applications Programming Interface)扩展Q例如被Microsoft IIS服务器和其他一些Windows服务器所使用的?a >q里有更多相关信?/a>。注意Apache不能加蝲ISAPI qo器?/p>

  • 当运行CGI脚本ӞApache查找脚本解释器是?code class="directive">ScriptInterpreterSource指o配置的?/p>

  • ׃在Windows下管理具有像.htaccessq样名字的文件是很困隄Q你会发现在配置文g中?code class="directive">AccessFilename指o改变它的文g名是很有用的?/p>

  • 在Windows NT上,Apache启动时发生的错误会记入Windows事g日志(event log)。这个机制将在Apache不能?code>error.log文g的时候运作。你可以通过"事g查看?的MMC接口查看Windows事g日志?/p>

    注意Q在Windows 9x上不存在事g日志机制Q因此无法记录启动错误?/strong>

以服务方式运行Apache for Windows

Apache仅能够在Windows NT上作为服务运行?/p>

你可以选择在安装Apache时自动将其安装ؓ一个服务。如果你选择"for all users"Q那么Apache会被安装ؓ服务。如果你选择?only for the Current User"Q你可以在安装后手动Apache注册为服务。注意,你必LAdministratorsl的成员才能成功注册服务?/p>

使用Apache Service Monitor工具Q可以查看和理你所在网l上的所有机器上安装的Apache服务的状态。ؓ了能够用这个工L理Apache服务Q你必须首先自动或手动安装Apache服务?/p>

你可以在Apache安装目录?code>bin子目录下Q用如下命令将Apache安装为Windows NT服务Q?/p>

httpd -k install

如果你想指定服务的名Uͼ可以使用下面的命令。当你在同一机器上安装多个Apache服务Ӟ你必Mؓ它们指定不同的名字?/p>

httpd -k install -n "服务?

如果你想Z同名U的服务使用不同的配|文Ӟ则安装时需要指定配|文Ӟ

httpd -k install -n "服务? -f "c:\files\my.conf"

如果你用的是第一个命令,也就是除 -k install 外没有其它命令行参数Q那么被安装的服务名U将是:Apache2.2 Q配|文件将使用conf\httpd.conf ?/p>

要移除一个Apache服务很简单:

httpd -k uninstall

或者用下q命令移除特定名U的Apache服务Q?/p>

httpd -k uninstall -n "服务?

通常Q启动、重启、关闭Apache服务的方法是使用Apache Service Monitor工具Q另外也可以使用控制台命令:NET START Apache2.2 ?NET STOP Apache2.2 或者通过Windows服务控制面板。在启动Apache服务之前Q你应当使用下面的命令检查一下配|文件的正确性:

httpd -n "服务? -t

你可以通过命o行开x控制Apache服务。要启动一个已l安装的Apache服务Q可以用:

httpd -k start

要停止一个已l安装的Apache服务Q可以用:

httpd -k stop

?/p>

httpd -k shutdown

要重启一个运行中的Apache服务Q强制它重新d配置文gQ可以用:

httpd -k restart

默认情况下,Apache服务被注册Z本地pȝ用户(LocalSystem帐号)w䆾q行?code>LocalSystem帐号没有|络权限Q不能通过MWindows安全机制讉K|络Q包括文件系l、命名管道、DCOM或secure RPC Q但是它对于本地资源却拥有广泛的Ҏ?/p>

永远不要把网l权限授?code>LocalSystem帐号Q如果你需要Apache能够讉K|络资源Q最好按照下q方法ؓApache另外建立一个单独的帐号?/strong>

你应该徏立一个单独的帐号来运行Apache服务。特别是在必通过Apache讉K|络资源的时候,我们更加强烈你这样做?/p>

  1. 创徏一个普通域用户帐号Qƈ牢记对应的密码?
  2. 授予q个新徏的帐?code>作ؓ服务登陆?code>作ؓ操作pȝ一部分q行权限。在Windows 2000/XP/2003上你可以使用"l策?或通过"本地安全{略"的MMC接口来完成这个操作?
  3. 认新徏的帐hUsersl的一个成员?
  4. 认新徏的帐号具有读取和执行(RX)所有文档和脚本目录(例如Q?code>htdocs?code>cgi-bin)的权限?
  5. 认新徏的帐号对Apache?code>logs目录h??删除(RWD)的权限?
  6. 认新徏的帐号对httpd.exe二进制文件具有读取和执行(RX)的权限?
一个很好的实践l验是赋予运行Apache服务的用戯取和执行(RX)整个Apache2.2目录的权限,q且?code>logs子目录具有读/?删除(RWD)的权限?/div>

如果你允怋用这个帐号作Z个用户和服务dQ你可以用q个帐号d上去试执行脚本、读取web늚权限Q还可以通过控制台窗口启动Apache 。如果这样工作正常,你又执行了上q的操作Q那么Apachep够正常地作ؓ服务q行了?/p>

错误代码2186是一个很好的提示Q说明你需要检?登陆?选项Q因为服务器不能讉K必要的网l资源?/div>

当启动Apache服务时你可能会遇C个来自Windows服务理器的错误信息?例如Q如果你想用控刉板中的服务小E序启动ApacheQ可能会得到下面q条信息Q?/p>

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

只要启动Apache出错你就会得到这个错误信息。ؓ了弄清是什么引起了错误Q?你应该遵?a >作ؓ控制台程序运行Apache中的?/p>

对于让Apache在Windows 9x下以cMWindows NT服务的方式运行有一些支持。都?em>高度试验?/em>的,即能够工作QApache软g基金会将不会证实其可靠性和未来的支持。l进行你自己的冒险吧Q?/p>

q两U?服务"有相当大的区别:

如果你输入下列命令,Apache会尝试启动,如果成功他将在后台运行:

httpd -n "服务? -k start

例如Q通过桌面的快h式运行,如果服务启动成功一个控制台H口会快速闪qƈ立刻消失。如果启动时Apache到比如httpd.conf文g中有不正的讄q样的问题,则控制台H口会保持可见。这样将昄一个有助于q踪错误原因的错误信息?/p>

Windows 9x不支?code>NET START或?code>NET STOP命oQ因此你在命令中必须使用Apache的服务控刉项。你可能希望为每个命令设|一个快h式以便你能够只需要从开始菜单或者桌面一点就能执行所需的操作?/p>

Apache和Windows 9x没有提供让Apache服务以特定的h|络权限的用戯n份运行的支持。实际上QWindows 9x在本地机器上Ҏ没有提供安全性。这是Apache软g基金会从不支持用Windows 9x作ؓ公用httpd服务器的原因。这个便利存在的唯一目的是协助用户开发web内容和学习Apache服务器,或者也许在一个安全的、私有的|络上充当intranet服务器?/p>

作ؓ控制台程序运行Apache

虽然通常推荐Apache作ؓ服务来运行,但是在某些情况下从命令行q行反而更加容易。在Windows 9x上,从命令行q行Apache是推荐的ҎQ因些系l中~Z可靠的服务支持?/p>

可以使用下列命oApache作ؓ控制台程序从命o行运行:

httpd

Apache会一直保持运行,直到被Ctl+Cl合键中断?/p>

你还可以在安装后通过 开始按?--> E序 --> Apache HTTP Server 2.2.xx --> Control Apache Server 在控制台中运行Apache 。这会打开一个控制台H口q在其中启动Apache 。如果你没有Apache安装为服务,该窗口将一直保持打开Q直到被Ctl+Cl合键中断,q在几秒钟后退出。如果你已经Apache安装为服务,那么那个快捷方式会启动服务Q如果Apache服务已经启动了,则什么也不做?/p>

你可以在另外一个控制台H口中输入以下命令停止正在运行的Apache服务Q?/p>

httpd -k shutdown

q种Ҏ比用Ctl+Cl合键更好,因ؓ它可以让Apache完成所有当前的操作q且优雅的清理所占用的资源?/p>

Apache可以被从新启动,q将D它重新读取配|文Ӟ重启前所有正在进行的操作都将不被打断的完成。可以用下面的命o重启Apache Q?/p>

httpd -k restart

L悉Unix版本Apache的用h意,q些命o对应于Unix命o kill -TERM pid ?kill -USR1 pid 。命令中之所以?-k 选项Q就是ؓ了提醒用戯是源自Unix下的kill命o?/div>

如果Apache控制台窗口在启动后出乎意料的立即关闭Q请打开一个新的控制台H口Q切换到Apache的安装目录下bin子目录中Q运?code>httpd命oq读取错误信息。然后再到日志目录中查看error.log文g以寻扑֏能的配置错误。如果你的Apache采用的是默认安装Q这些命令应当是Q?/p>

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

{候Apache停止Q或者用Ctl+Cl合键,然后输入下列内容Q?/p>

cd ..\logs
more < error.log

可以在命令行中ؓApache指定一个配|文Ӟ有两U方法可以在命o行中指定配置文gQ?/p>

  • -f 可以指定一个绝对\径或相对路径的配|文Ӟ

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

    ?/p>

    httpd -f files\anotherconfig.conf

  • -n 可以指定已安装的Apache服务所使用的配|文Ӟ

    httpd -n "服务?

在这两种情况下,必须在配|文件中讄正确?code class="directive">ServerRoot倹{?/p>

如果你没有?-f ?-n 指定配置文g的\径,Apache会使用编码在服务器内的\径,比如Q?code>conf\httpd.conf 。这个内|的路径是相对于安装目录的,要想查这个内|的路径Q你可以通过 -V 开兌用Apache Q查看名?code>SERVER_CONFIG_FILE的变量|

httpd -V

Apache会按照下列序?code class="directive">ServerRoot|

  1. 通过 -C 命o行开x定的ServerRoot倹{?
  2. 通过 -d 命o行开x定的倹{?
  3. 当前工作目录?
  4. 安装二进制文件时在注册表中登记的目?
  5. ~译q二q制文g的|该值默认ؓQ?code>/apache Q你可以使用 httpd -V 命o查看昄出来?code>HTTPD_ROOT变量的倹{?

在安装过E中Q将会在注册表中新徏一个版本特定的注册表键。这个键的位|取决于安装cd。如果你选择的是"for all users"Q那么将位于HKEY_LOCAL_MACHINE分支下,如下所C:

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.2.4

如果你选择的是"for the current user only"Q那么将位于HKEY_CURRENT_USER分支下,其中的内容取决于当前登陆的用P如下所C:

HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.2.4

q个键已l被~译q了服务器,使得你可以测试新版本而又不媄响老版本。当Ӟ你必L意不要在同一个目录中安装两个不同的版本?/p>

如果你没有用二q制安装Q在某些情况下Apache会抱怨注册表键丢失。如果在q种情况下服务器仍然可以扑ֈ正确的配|文Ӟ那么可以安全的忽略它?/p>

q个注册表键其实是包含conf子目录的ServerRoot目录。Apache要从中dhttpd.conf文g。如果该配置文g中又包含了一?code class="directive">ServerRoot指oQƈ且指向的目录与注册表中登记的不同QApache以配置文g中的指o为准。如果你复制了配|文件或者整个Apache目录C个新的位|,你要千万记得修改httpd.conf中的ServerRoot指oQ其指向正的位置?/p>

安装的测?/a>

启动Apacheq行以后(不管是控制台H口q是作ؓ服务)Q?它会?0端口上进行监?除非你改变了配置文g中的Listen指o?要连接到服务器访问默认页面,启动一个浏览器q输入下列URL Q?/p>

http://localhost/

应该出现一个欢q页面,q且面上有到Apache用户手册的链接?如果什么都没有发生或是得到了一个错误,?code>logs子文件夹中的 error.log文g。如果你的主机没有联|或者DNS配置有严重问题,你也讔R要输入这LURL Q?/p>

http://127.0.0.1/

如果你将Apache配置为在?0端口监听(比如Q?080)Q你应当使用下面的URL明确指定端口Q?/p>

http://127.0.0.1:8080/

一旦你的基本配|可以工作了Q你应该~辑conf目录下的文g来恰当地配置Apache ?此外Q如果你改变了作为NT服务q行的Apache的配|,你应该首先尝试从命o行启动来保证能够正确地启动Apache服务?/p>

因ؓApache不能与其他TCP/IP应用E序׃n同一端口Q你可能需要先停止或者卸载或者重新配|某些特定的服务。这包括(但不限于)别的web服务器和BlackIce那样的防火墙。如果你只能在禁止其他服务的情况下启动Apache Q那么需要重新配|Apache或者其他程序它们不监听同一个TCP/IP端口?/p>



javaboys 2007-03-31 17:59 发表评论
]]>JAVA 常用的APIhttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107662.htmljavaboysjavaboysSat, 31 Mar 2007 09:44:00 GMThttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107662.htmlhttp://www.aygfsteel.com/javaboys/comments/107662.htmlhttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107662.html#Feedback0http://www.aygfsteel.com/javaboys/comments/commentRss/107662.htmlhttp://www.aygfsteel.com/javaboys/services/trackbacks/107662.html
在写JavaE序ӞJava API文档是必不可的?br />中文API下蝲来自sun.com.cn.
可通下面下载地址q行下蝲Q?br />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

javaboys 2007-03-31 17:44 发表评论
]]>
JUnit入门 [E序开发Java] http://www.aygfsteel.com/javaboys/archive/2007/03/31/107643.htmljavaboysjavaboysSat, 31 Mar 2007 07:49:00 GMThttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107643.htmlhttp://www.aygfsteel.com/javaboys/comments/107643.htmlhttp://www.aygfsteel.com/javaboys/archive/2007/03/31/107643.html#Feedback0http://www.aygfsteel.com/javaboys/comments/commentRss/107643.htmlhttp://www.aygfsteel.com/javaboys/services/trackbacks/107643.html
2007-03-31 01:10:21
 一、简?

  JUnit是一个开源的java单元试框架。在1997q_?Erich Gamma ?Kent Beck 开发完成。这两个牛h?Erich Gamma ?GOF 之一QKent Beck 则在 XP 中有重要的A献(你觉得眼熟一炚w不奇怪)?
  正如常言道:“麻雀虽小Q五脏俱全。?JUnit设计的非常小巧,但是功能却非常强大?
  下面是JUnit一些特性的ȝQ?
  1) 提供的API可以让你写出试l果明确的可重用单元试用例
  2) 提供了三U方式来昄你的试l果Q而且q可以扩?
  3) 提供了单元测试用例成批运行的功能
  4) 轻量而且使用单,没有商业性的ƺ骗和无用的向导
  5) 整个框架设计良好Q易扩展
  对不同性质的被对象,如ClassQJspQServletQEjb{,Junit有不同的使用技巧。由于本文的性质Q以下仅以Class试Z?

  二?a class="blue" target="_blank">下蝲

  点击http://www.junit.org可以下蝲到最新版本的JUnitQ本文用的?.8.1版。至于安装或者配|之c,你只需要轻杄下载下来的压羃包中的jar文gQ放C工程的classpath中就可以了?
  q样Q你的系l中可以用JUnit~写单元试代码了(是不是很单)Q?

  三、HelloWorld

  记得在几乎每本语a教学书上都能扑ֈHelloWorldq个入门代码。今天在q里Q我们也从一个简单到Ҏ不用单元试的例子入手。这是一个只会做两数加减的超U简单的计算器(学一q必备极品Q。代码如下:

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

   public int subtration(int minuend , int subtrahend)

   {

   return minuend - subtrahend ;

   }

  }

  上面的代码~译通过。下面就是我Z面程序写的一个单元测试用例:

  //h意这个程序里面类名和Ҏ名的特征
  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);

   }

  }

  好了Q在DOS命o行里面输入javac TestSample.java 测试类~译通过。然后再输入 java junit.swingui.TestRunner TestSample q行试c,你会看到如下的窗口?

  l色说明单元试通过Q没有错误生;如果是红色的Q则是说测试失败了。这样一个简单的单元试完成了.

  按照框架规定Q编写的所有测试类Q必ȝ承自junit.framework.TestCasec;里面的测试方法,命名应该以Test开_必须是public void 而且不能有参敎ͼ而且Z试查错方便Q尽量一个TestXXXҎ对一个功能单一的方法进行测试;使用assertEquals{junit.framework.TestCase中的断言Ҏ来判断测试结果正与否?

  你可以对比着上面试cM的实现来体会下规定——很单!而且你在q个试cM有加入多个试ҎQ就会运行多个试Ҏ?

  四、向前一?

  学完了HelloWorldQ你已经可以~写标准的单元测试用例了。但是还有一些细节,q里q要说明一下。不要急,很快的!
  另外你是否注意到Q上面弹出窗口的一个细节,在绿条下面有Errors、Failuresl计。这两者有何区别呢Q?
  Failures作ؓ单元试所期望发生的错误,它预CZ的代码有bugQ不q也可能是你的单元测试代码有逻辑错误Q注意是逻辑错误Q。Errors不是你所期待的,发生了Error你可以按照下面的序来检查:

  查测试所需的环境,如:数据库连?

  查单元测试代?

  查你的系l代?

  五、成批运行test case

  q是前面提到的JUnitҎ之一。它方便于系l单元测试的成批q行。用v来也是非常简单,先看下用代码:

  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;

   }

  }

  q个试E序的编译、运行,和上面TestSample的方式是一L?

  javac TestAll.java

  java junit.swingui.TestRunner TestAll

  怎么Pq样你在suiteҎ里面d几个TestCase׃q行几个Q而且它也可以dTestSuite来将一点的集合加入大的集合中来Q方便了对于不断增加的TestCase的管理和l护?

  你觉得suiteҎ的作用是不是于java应用E序的main很类|q且q里的suite必须严格遵守上面的写法!





javaboys 2007-03-31 15:49 发表评论
]]>
վ֩ģ壺 | ΢ɽ| | α| | Ļ| | | | | | ͨ| ˮ| | | ԭ| ߰| Ƹ| | | Թ| | | Ǹ| | | | | ʡ| | ־| Ȫ| ƽ| | | | ˮ| | | | ̳|