PHPUnit extension for test cases that utilize MongoDB as their data source.
PHP
Latest commit 7862bf1 Feb 16, 2017 @cjsaylor cjsaylor committed on GitHub Merge pull request #10 from zumba/avoid-insert-empty
Avoiding issues when the fixture is empty

README.md

Mongounit is a PHPUnit extension for test cases that utilize MongoDB as their data source.

Latest Stable Version Build Status

Requirements

  • PHP 5.6+
  • PHPUnit 4.0+
  • PECL mongodb 1.2+

Testing

  1. Install dependencies composer install -dev
  2. Run ./bin/phpunit

Example use

<?php

class MyMongoTestCase extends \PHPUnit_Framework_TestCase {
    use \Zumba\PHPUnit\Extensions\Mongo\TestTrait;

    /**
     * Get the mongo connection for this test.
     *
     * @return Zumba\PHPUnit\Extensions\Mongo\Client\Connector
     */
    public function getMongoConnection() {
        // Add your credentials here
        return new \MongoDB\Client();
    }

    /**
     * Get the dataset to be used for this test.
     *
     * @return Zumba\PHPUnit\Extensions\Mongo\DataSet\DataSet
     */
    public function getMongoDataSet() {
        $dataset = new \Zumba\PHPUnit\Extensions\Mongo\DataSet\DataSet($this->getMongoConnection());
        $dataset->setFixture([
            'some_collection' => [
                ['name' => 'Document 1'],
                ['name' => 'Document 2']
            ]
        ]);
        return $dataset;
    }

    public function testRead() {
        $result = $this->getMongoConnection()->test->some_collection->findOne(['name' => 'Document 2']);
        $this->assertEquals('Document 2', $result['name']);
    }

}

See full working example.

Note about PHP Versions

PHP 5.5 and below are no longer actively supported. If you are using these version, stick with previous versions of mongounit, however it is recommended to stop using these versions of PHP.