UnitTests失败,手动测试通过
在我的代码中有一些奇怪的事情,所以我不得不问。UnitTests失败,手动测试通过
我有一个测试的一部分:
public function testGetAddresses()
{
//$this->markTestIncomplete('Not implemented yet');
$this->assertTrue($this->_prs->getAddresses() instanceof Crm_Collection);
}
此测试失败。
但是,当我这样做:
if ($entity->getAddresses() instanceof Crm_Collection) {
echo "TRUE!";
} else {
echo "FALSE!";
}
它输出TRUE!
任何人都知道发生了什么,或者这可能是phpunit中的错误?
谢谢!
我怀疑这是一个PHPUnit的错误。 既然你在两个不同的对象上调用getAddresses()
方法,我猜测在失败的测试中,这个方法确实返回了不是Crm_Collection
的东西。
getAddresses()
方法是否有可能返回null或抛出异常?
它不能返回null,它只是返回一个空的集合。 所有其他测试运行良好。有两个类从实体继承。这是相同的类btw,手动测试只是一个手动设置变量。 – baklap 2010-08-20 13:22:43
其他测试好吗?你是否从浏览器运行测试?
当您从命令行运行PHP代码时,我强烈建议设置一个正确的路径到php.ini。否则PHP将使用默认值,这可能与您当前的php.ini不同。
不知道这是否能解决您的问题,但知道的很好。一旦我花了几个小时才发现这一点。
php -c "c:/program files/apache software foundation/Apache2.2/" -f /path/to/your/script.php
'$ entity'和'$ this->之间可能有区别吗? _prs'这有助于解决问题? – ircmaxell 2010-08-20 13:03:56
对不起,我看到了,我对于stackoverflow有点新。我今晚或星期一做那件事。谢谢 – baklap 2010-08-20 13:41:36
您的意见表明问题已解决,请选择最能帮助您的答案并接受它(也许可以提供有用的东西来感谢人们)。它有助于其他人不会浪费时间解决已经解决的问题。 – edorian 2010-08-20 14:01:30