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

OK、他のことを数日行った後、この問題に戻って解決しました。

PHPUnit を PEAR 経由で最新バージョン (2013 年 8 月 1 日現在) に更新したところ、問題は解決しました。

教訓: 1 つのコンポーネントだけでなく、すべてを更新してみてください。

于 2013-08-01T12:55:36.020 に答える