Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chế giễu PDO với phpunit

Bạn không cần phải chế nhạo PDO. Dưới đây là ví dụ về cách nó hoạt động:

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>

Kết quả:

PHPUnit 4.7.6 by Sebastian Bergmann and contributors.

.

Time: 215 ms, Memory: 5.25Mb

OK (1 test, 1 assertion)

Điểm chính trong các bài kiểm tra đối với db là không giả lập db mà còn tạo kết nối PDO hoàn toàn giống nhau không đến db sản xuất mà đến db để kiểm tra, nó có thể là mysql, sqlite, v.v.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mật khẩu gốc mysql quên

  2. giá trị mặc định của GUID cho một cột trong mysql

  3. Làm cách nào để khắc phục lỗi MySQL # 1064?

  4. Tôi có thể tham số hóa tên bảng trong một câu lệnh đã soạn sẵn không?

  5. PlanetScale &Vitess:Tính toàn vẹn tham chiếu với cơ sở dữ liệu được chia nhỏ kế thừa