Mysql
 sql >> база данни >  >> RDS >> Mysql

Подигравателно PDO с phpunit

Не е нужно да се подигравате на PDO. Ето пример как работи:

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>

Резултат:

PHPUnit 4.7.6 by Sebastian Bergmann and contributors.

.

Time: 215 ms, Memory: 5.25Mb

OK (1 test, 1 assertion)

Основният момент в тестовете срещу db е да не се подигравате с db, а също така да създадете абсолютно същата PDO връзка не към производствения db, а към db за тест, може да бъде mysql, sqlite и т.н....



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съвместимост с MySQL с MacOS Sierra

  2. JDBC на Google Apps Script. Изключение:Изявлението е анулирано поради изчакване или клиентска заявка

  3. Задаване на стойност по подразбиране за колона тип ДАТА на текуща дата без част от времето?

  4. Обединяване на различни таблици въз основа на стойност на колоната

  5. Вземете MySQL база данни чрез PHP към XML