MongoDb
Установка
Если вы используете Codeception, установленный с помощью Composer, установите этот модуль следующей командой:
composer require --dev codeception/module-mongodb
В качестве альтернативы, вы можете включить MongoDb модуль в файле конфигурации набора тестов и запустить
codecept init upgrade4
Этот модуль был включен в Codeception 2 и 3, но с версии 4 его необходимо устанавливать отдельно.
Некоторые модули поставляются с файлами PHAR.
Предупреждение. Использование файла PHAR и Composer в одном проекте может привести к непредвиденным ошибкам.
Описание
Работает с базой данных MongoDb.
Наиболее важной функцией этого модуля является очистка базы данных перед каждым тестом. Для надлежащей очистки вашей базы данных необходимо настроить доступ к ней.
Для заполнения вашей базы данных данными вам нужен действительный js-файл с данными (того же стиля, который может быть загружен в двоичный файл mongo). Файл можно сгенерировать с помощью команды экспорта RockMongo. Вы также можете использовать директорию, сгенерированную
mongodump
инструментом или ее
.tar.gz
архив (не доступен для систем Windows), сгенерированный
tar -czf <archive_file_name>.tar.gz <path_to dump directory>
. Просто поместите его в
tests/_data
директорию (по умолчанию) и укажите путь к нему в конфигурации. В следующий раз после очистки базы данных все ваши данные будут восстановлены из резервной копии. Подготовка базы данных должна выполняться следующим образом:
- очистка базы данных
- коллекция system.users должна содержать пользователя, который будет аутентифицирован во время выполнения операций с базой данных скриптом
Подключение осуществляется с помощью драйвера MongoDb, который хранится в пространстве имен Codeception\Lib\Driver. Обратитесь к драйверу, если у вас возникнут проблемы с загрузкой дампов и очисткой баз данных.
Подсказка: Этот модуль может быть использован с библиотекой Mongofill, которая представляет собой клиент Mongo, написанный на PHP без расширений.
Статус
- Поддержка: judgedim, davert
- Стабильность: бета
- Контакты: davert@codeception.com
Пожалуйста, проверьте код нестабильных модулей и предоставьте исправления, если у вас возникнут проблемы.
Конфигурация
- dsn обязательно - MongoDb DSN с именем базы данных, указанным в конце хоста после косой черты
- user обязательно - пользователь для доступа к базе данных
- password обязательно - пароль
- dump_type обязательно - тип дампа. Один из ‘js’ (MongoDb::DUMP_TYPE_JS), ‘mongodump’ (MongoDb::DUMP_TYPE_MONGODUMP) или ‘mongodump-tar-gz’ (MongoDb::DUMP_TYPE_MONGODUMP_TAR_GZ). По умолчанию: MongoDb::DUMP_TYPE_JS).
- dump - путь к резервной копии базы данных
- populate: true - нужно ли загрузить резервную копию перед запуском набора тестов.
- cleanup: true - нужно ли загружать резервную копию после каждого теста. Булево значение или ‘dirty’. Если cleanup установлено в ‘dirty’, резервная копия загружается только в том случае, если какие-либо данные были записаны в базу данных во время теста. Это проверяется с помощью команды dbHash.
Действия
dontSeeInCollection
Проверяет, не содержит ли коллекция элемент.
<?php
$I->dontSeeInCollection('users', array('name' => 'miles')); -
param$collection -
param array$criteria
grabCollectionCount
Получает количество документов в коллекции
<?php
$count = $I->grabCollectionCount('users');
// or
$count = $I->grabCollectionCount('users', array('isAdmin' => true)); -
param$collection -
param array$criteria return integer
grabFromCollection
Получает данные из коллекции
<?php
$user = $I->grabFromCollection('users', array('name' => 'miles')); -
param$collection -
param array$criteria return array
haveInCollection
Вставляет данные в коллекцию
<?php
$I->haveInCollection('users', array('name' => 'John', 'email' => 'john@coltrane.com'));
$user_id = $I->haveInCollection('users', array('email' => 'john@coltrane.com')); -
param$collection -
param array$data
seeElementIsArray
Утверждает, что элемент в коллекции существует и является массивом
<?php
$I->seeElementIsArray('users', array('name' => 'John Doe') , 'data.skills'); -
param String$collection -
param Array$criteria -
param String$elementToCheck
seeElementIsObject
Утверждает, что элемент в коллекции существует и является объектом
<?php
$I->seeElementIsObject('users', array('name' => 'John Doe') , 'data'); -
param String$collection -
param Array$criteria -
param String$elementToCheck
seeInCollection
Проверяет, содержит ли коллекция элемент.
<?php
$I->seeInCollection('users', array('name' => 'miles')); -
param$collection -
param array$criteria
seeNumElementsInCollection
Подсчет количества записей в коллекции
<?php
$I->seeNumElementsInCollection('users', 2);
$I->seeNumElementsInCollection('users', 1, array('name' => 'miles')); -
param$collection -
param integer$expected -
param array$criteria
использоватьБазуДанных
Укажите используемую базу данных
<?php
$I->useDatabase('db_1'); -
param$dbName
© 2011 Michael Bodnarchuk and contributors
Licensed under the MIT License.
https://codeception.com/docs/modules/MongoDb