sql >> Databáze >  >> RDS >> Mysql

Zesměšňování PDO pomocí phpunit

Nemusíte se vysmívat PDO. Zde příklad, jak to funguje:

ConnectionTest.php:

<?php

class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
    public function getConnection()
    {
        $database = 'myguestbook';
        $user = 'root';
        $password = '';
        $pdo = new PDO('mysql:host=localhost;dbname=myguestbook', $user, $password);
        $pdo->exec('CREATE TABLE IF NOT EXISTS guestbook (id int, content text, user text, created text)');
        return $this->createDefaultDBConnection($pdo, $database);
    }

    public function getDataSet()
    {
        return $this->createFlatXMLDataSet(__DIR__.'/dataSets/myFlatXmlFixture.xml');
    }

    public function testGetRowCount()
    {
        $this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'));
    }
}

myFlatXmlFixture.xml

<?xml version="1.0" ?>
<dataset>
    <guestbook id="1" content="Hello buddy!" user="joe" created="2010-04-24 17:15:23" />
    <guestbook id="2" content="I like it!" user="nancy" created="2010-04-26 12:14:20" />
</dataset>

Výsledek:

PHPUnit 4.7.6 by Sebastian Bergmann and contributors.

.

Time: 215 ms, Memory: 5.25Mb

OK (1 test, 1 assertion)

Hlavním bodem testů proti db je nevysmívat se db, ale také vytvořit naprosto stejné spojení PDO ne s produkční db, ale s db pro testování, může to být mysql, sqlite atd...



  1. Jak předat pole vlastního typu funkci Postgres

  2. PostgreSQL GROUP BY odlišná od MySQL?

  3. MySQL Cluster (NDB) vs MySQL Replication (InnoDB) pro aplikace Rails 3:klady/zápory?

  4. instalace postgres selhala inicializace databázového clusteru ( Postgresql verze 9.4.4 )