本地安装W3C Link checker
对于网站的完整性来说,主要会发生的问题就是网站页面中出现的Dead Link。如何检验这种错误呢?当然你可以使用最笨的方法点击每一个链接,不过相信没人愿意去干这种枯燥乏味的体力活。其实最简单的方法是使用W3C Link checker,但这种Check却存在唯一的缺陷,无法解决内部网站的验证,除非你能把这些内部网站暴露在Internet上,让W3C Link Checker可以访问到它们。
要解决访问这个问题其实也不是非常困难,在参照W3C页面的Install it locally 说明来做就可以了。
如果你想我一样,有Debian/Ubuntu的环境,那么安装更方便。
- sudo apt-get install w3c-linkchecke。
- 修改/etc/w3c/checklink.conf文件,可以把Allow_Private_IPs = 1,这样可以验证non-public IP address,修改Doc_URL和Style_URL到正确的地址。
- 访问http://<servername>/w3c-linkchecker/checklink.html,可以了解是否安装成 功,最好把此html进行修改,把其中的localhost替换成实际的机器名称<servername>。(此页面是说明页面)
- 访问http://<servername>/cgi-bin/checklink,此地址才是正确校验工具的地址。(如步骤2 Style_URL设置有误,此时可能CSS会出现一些问题,但对任何功能没有影响)
现在就可以尝试验证一下你的网站,看看是否有问题了。
验证工作不仅可以使用Web方式,其实你也可以在命令行中输入checklink完成相同的工作。
不过这两种校验速度还是慢了点,现在还不清楚是否有没有其他的什么参数可以设置,来加快验证的工作。
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");
}
单元测试、集成测试和系统测试
这几个词汇在测试工作中出现的频率非常的高,从字面的可以理解为“单元测试”(Unit Test)、”整合测试”(Integration Test)和系统测试(System Test)。但做了怎么多年的开发其实一直没有搞清楚它们之间的区别,特别是整合测试和系统测试,给我的感觉似乎所指的是同一件事物。
今天从”Manage Software Testing”这本书中,我得到了这个问题的解答,书中对这几个词的解释并不长,但言简意赅。
- Unit Test : Do the units do what they’re supposed to
- Integration Test : Do the components integrate properly?
- System Test : Does the system do what is required of it?
简单说就是Unit Test是确保你设计编码的单元功能都已经完成,Integration Test是确保各个单元之间组合在一起时不会出现任何问题,而系统测试就是确保所完成的功能都符合和满足客户需求的定义。
其中“单元测试”主要有开发人员完成,而“整合测试”是开发人员和测试人员共同完成,最后的“系统测试”主要是由测试人员完成。
PHP实现trackback
Trackback是Blog中非常Cool的一个功能,通过它可以了解有多少站点引用了你的文章。如何使用PHP实现这样的功能?其实可以使用Pear库的Services_Trackback即可。
IBM Developerwork有相关介绍文章:使用 PHP 实现引用链接(trackback)
柏杨和《丑陋的中国人》
知名作家柏杨29日凌晨病逝 享年89岁。自己其实对他一点都不熟悉,但最近许多对他的报道,让我开始慢慢了解他。
最初吸引我的是他的一本著作《丑陋的中国人》。看到书名时的第一个反应就是让我想起来了林语堂的《吾国吾民》。其实能以一颗平常心,写一本客观评价中国人的书是非常不容易、不简单的一件事情,特别是还揭露中国人的部分阴暗面。种种这些原因让我挺想了解中国人到底是个啥样。
这两天虽然只看了一部分,但是对文中所述还是挺有感触。其实如想提升自己的品德,这本书会提供给你很多的建议。


