Spec-Zone.ru › Codeception

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API