2007年6月1日星期五

PHP自带可以代替echo调试的unit函数

今天发现个函数 assert 和 assert_options, 他们组合可以完成一个简单的phpunit的功能, 但是实在是太简单, 所以用处不太大, 但是还是记录一下好了.

  主要问题是不能灵活的自己定义错误的提示信息,只能提示出问题的文件和行数.

  具体的使用方法可以看 <> 或者 <>

  同时可以结合 <>中 "XXVII. Error Handling and Logging Functions" 章节里的东西,共同使用.

  下面是我写的一个测试文件, 包含了所有的功能的测试,不过ASSERT_QUIET_EVAL一直不太明白,没测试出来具体有什么样作用

以下是引用片段:

<?php


function assert_failed($file, $line, $expr) {

print "Assertion failed in $file [ $line ] : $expr <br/>";

}

//error_reporting设置为0, 相当于调用assert_options(ASSERT_WARNING, 0);

//error_reporting(0);

//是否启用对ASSERT_ACTIVE的支持

assert_options(ASSERT_ACTIVE, 1);

//是否在发送第一次wanning的时候,停止脚本的执行

assert_options(ASSERT_BAIL, 0);

//没搞定,还不明白具体怎么用,偶测试不出来

//assert_options(ASSERT_QUIET_EVAL, 0);

echo "step 1 <br />";

assert(1==1);

echo "step 2 <br />";

assert(2==1);

echo "step 3 <br />";

//设定assert的callback样式,可以自己定义wanning信息显示时的样式

assert_options(ASSERT_CALLBACK, 'assert_failed');

//不显示assert()自己产生warnning信息,如果设置了ASSERT_CALLBACK,仍然还会显示ASSERT_CALLBACK函数对应的信息,但是函数中传入的$expr参数不起作用.

//assert_options(ASSERT_WARNING, 1);

assert(1==1);

assert((1/0)>2);

echo "step 4 <br />";

?>