PHPUnit 方法说明
PHPUnit Assertion 方法解释:
1. assertEquals( $val1, $val2, $delta, $message)
如何$val1不等于$val2,测试失败。$delta设定两个数值比较时的误差。
2. assertFalse( $expression, $message)
测试$expression的值是否为False,如果不为False则测试失败。
3. assertTrue( $expression, $message)
测试$expression的值是否为True,如果不为True则测试失败。
4. assertNotNull( $val, $message )
如果$val 为 null,则测试失败。
5. assertNull( $val, $message )
如果$val 不为 null,则测试失败。
6. assertSame( $val1, $val2, $message )
如何$val1等于$val2,同时$val1和$val2必须是相同的数据类型,否则测试失败。
7. assertNotSame( $val1, $val2, $message )
如何$val1不等于$val2,或者$val1和$val2的数据类型不同,则测试失败。
8. assertRegExp( $regexp, $val, $message )
如果$val不能匹配正则表达式$regexp,则测试失败。
9. assertType( $typestring, $val, $message )
如果$val不是$typestring所描述的类型,则测试失败。
10. assertAttributeSame($val, $attribute, $classname, $message)
如果$val和$classname::$attribute.的数值不同或者类型不同,则测试失败。
11. fail()
测试永远返回失败。(主要用于Exception的测试)
以上是一些常用的测试方法,PHPUnit还有不少其他assertion的方法。
最后介绍一下如何进行PHP的Exception的测试判断,PHPUnit中并没有已定制的函数,你必须通过使用try…catch和fail来实现Exception的测试。请参考以下示例:
public function testException() {
try {
//应产生异常的函数
$this->store->addUser( "bob williams", "bob@example.com", "ff" );
} catch ( Exception $e ) { return; }
$this->fail("Short password exception expected");
}
在Ubuntu 7.1上安装 Xinc (包含Xdebug的安装)
XInc是什么?它是一套PHP持续集成(continuous integration的系统,它完全使用PHP5进行编写,同时集成了Subversion、Phing、PHPUnit、PHPDocumentor等功能。
1.安装PHP模块和Xdebug模块
- sudo apt-get install php5 php5-dev php5-cli(其中php5-dev为了安装xdebug所以必须安装)。
- sudo apt-get install php5-xsl (Xinc需要xsl extension)
- sudo pecl install xdebug。(编译成功说明已经安装完成)
-
编辑/etc/php5/apache/php.ini和/etc/php5/cli/php.ini加入 zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so"。(此目录名词会在step2完成后显示)
- sudo pear channel-discover pear.xinc.eu (Xinc的pear库)
- sudo pear channel-discover pear.phpunit.de (PHPUnit的pear 库)
- sudo pear channel-discover pear.phing.info (Phing的pear库)
- sudo pear install VersionControl_SVN-alpha
- sudo pear install –alldeps xinc/Xinc
- sudo pear run-scripts xinc/Xinc
3.配置Apache
- 在/etc/init.d/httpd.conf 文件中加入Include /etc/xinc/www.conf,此文件中主要包含Virtual Host的配置。
- 运行sudo a2enmod rewrite,加入apache对mod_rewrite的支持。
- 输入/etc/init.d/apache2 restart 重新启动apache server。
由于默认使用了127.0.0.1:8080作为xInc的Url,所以在浏览器的Url栏中输入既可看到Xinc的UI了。
PHPUnit的安装
第一步不用说,当然是连接PHPUnit的官方网站,下载所需的安装程序。不过有一件事情千万别搞混了,在Pear库里也有一套PHPUnit,不过这个版本已经很旧了,现在都使用www.phpunit.de网站的PHPUnit程序,千万别搞错了,否则怎么写了半天的代码都是错的。
安装其实非常方便,也是通过Pear Installer来进行的。
1. 新增一个Pear库的Channel,因为它不是标准的Pear库中包含的内容。
pear channel-discover pear.phpunit.de
2. 输入Pear的安装命令,安装的过程就会自动开始了。
pear install phpunit/PHPUnit
3. 如需同时安装一些附加包,可以使用以下命令替代命令2。(建议使用这个选项安装,如果需使用PHPUnit生成一些报表,会使用到这些附加包)
pear install –alldeps phpunit/PHPUnit
当然也可以使用手动的方式进行,不过步骤比较多,有一定的复杂性。如有兴趣可参考PHPUnit官方说明自行安装。
以上只是简单的安装说明,慢慢会分享PHPUnit的使用心得。