今日は、しばらく触れていなかったプロジェクトに戻りました。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モック/テスト クラスを打ち出す必要がありますか?