【发布时间】:2017-10-30 10:15:57
【问题描述】:
我正在尝试对我的 mongodb 方法进行单元测试,因此我需要一个 tearDown() 方法来在测试后刷新我的整个 mongo 数据库。
函数如下:
public function tearDown()
{
$databases = $this->mongoClient->listDatabases();
foreach ($databases as $db) {
$db.dropDatabase();
}
}
但是它在我的 $db 上看不到方法。
Error: Call to undefined function Api\Test\Unit\dropDatabase()
似乎 listDatabases() 只返回我的数据库的一些信息模型,而不是实际的数据库本身:
/var/www/html/tests/backend/Service/MongoStorageTest.php:35:
class MongoDB\Model\DatabaseInfo#1563 (3) {
public $name =>
string(5) "local"
public $sizeOnDisk =>
double(83886080)
public $empty =>
bool(false)
}
/var/www/html/tests/backend/Service/MongoStorageTest.php:35:
class MongoDB\Model\DatabaseInfo#1483 (3) {
public $name =>
string(2) "db"
public $sizeOnDisk =>
double(83886080)
public $empty =>
bool(false)
}
是否有任何实用或简单的方法来真正选择它们,或者只用一种方法删除所有内容?
【问题讨论】:
-
$db.dropDatabase();- PHP 不使用 .要访问方法,这是有效的:$db->dropDatabase();给定的 dropDatabase 方法确实存在 -
您认为提供的答案中是否有某些内容无法解决您的问题?如果是这样,那么请对答案发表评论,以澄清究竟需要解决哪些尚未解决的问题。如果它确实回答了您提出的问题,请注意Accept your Answers您提出的问题