Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Szydzenie PDO z phpunit

Nie musisz kpić z PDO. Oto przykład, jak to działa:

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>

Wynik:

PHPUnit 4.7.6 by Sebastian Bergmann and contributors.

.

Time: 215 ms, Memory: 5.25Mb

OK (1 test, 1 assertion)

Głównym punktem w testach przeciwko db jest nie naśladowanie db, ale także tworzenie absolutnie tego samego połączenia PDO nie z produkcyjną db, ale z db do testu, może to być mysql, sqlite itp...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework tworzy nazwę tabeli w liczbie mnogiej, ale widok oczekuje nazwy tabeli w liczbie pojedynczej?

  2. Złożone klauzule WHERE przy użyciu PHP Doctrine ORM

  3. Jak otworzyć połączenie DB w Openshift?

  4. Znaki specjalne w nazwie tabeli MySQL

  5. Czy istnieje prostszy sposób na osiągnięcie tego stylu komunikacji z użytkownikami?