我的代码中有一些奇怪的东西,所以我不得不问。
我有一个测试的一部分:
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中的错误吗?
谢谢!
答案 0 :(得分:2)
我怀疑这是PHPUnit的错误。
由于你在两个不同的对象上调用getAddresses()
方法,我猜测在失败时这个方法确实会返回不是Crm_Collection
的东西。
getAddresses()
方法是否有可能返回null或抛出异常?
答案 1 :(得分:1)
为什么vadimbelyaev说:
我不认为这是phpunit的问题,请仔细检查您的代码。
此外,您可以使用:
$this->assertType("Classname", $object)
所以如果失败,你会得到一个很好的错误。 (Phpunit会告诉你“期望的课程,得到空”而不是“预期真实,得到假”,并在调试时帮助很多:))
答案 2 :(得分:0)
其他测试可以吗?你是从浏览器运行测试吗?
当您从命令行运行PHP代码时,我强烈建议您设置php.ini的正确路径。否则PHP将使用可能与您当前的php.ini
不同的默认值不确定这是否能解决您的麻烦,但很高兴知道。在我发现这个之前,我花了几个小时。
php -c "c:/program files/apache software foundation/Apache2.2/" -f /path/to/your/script.php