0

今天回到一个好久没碰的项目。这是一个使用 MongoDB 作为其数据库的 Zend Framework 2 项目。

我决定将 MongoDB 从 (2.0) 更新到最新版本 (2.4) 以及将驱动程序更新到最新版本 (1.4.2?) 已经有一段时间了。

现在,在运行我的 PHPUnit 测试时,由于模拟的MongoCollection类未能通过“ is_a() ”测试,我得到了错误。

新的模拟类不是MongoCollection的一个实例,而是一个_PHP_Incomplete_Class实例。我一直在寻找高低,我找不到任何有同样问题的人。我只能假设PHPUnit不喜欢的MongoDB类发生了一些变化。

 $collection = $this->getMockBuilder('MongoCollection')
                    ->disableOriginalConstructor()
                    ->getMock();

检查$collection时,我看到:

_PHP_Incomplete_Class Object {
    _PHP_Incomplete_Class_Name => (string) Mock_MongoCollection_2798b1f7"
}

有谁知道解决这个问题的方法,还是我需要用自己的MongoCollection模拟/测试类进行测试?

4

1 回答 1

0

好的,经过几天做其他事情后,我回到了这个问题并解决了它。

我通过 PEAR 将 PHPUnit 更新到了最新版本(截至今天,2013 年 8 月 1 日),问题已经消失。

教训:尝试更新所有内容,而不仅仅是一个组件!

于 2013-08-01T12:55:36.020 回答