Phinx и PHPUnit - PullRequest
       31

Phinx и PHPUnit

0 голосов
/ 03 мая 2018

Я использую PHPUnit 5, DBUnit 2.0.3 и Phinx 0.8.2. Я пытаюсь настроить тест с базой данных SQLite:

abstract class ApiTest extends PHPUnit_Extensions_Database_TestCase
{
    protected $pdo;

    public function getConnection()
    {
        return $this->createDefaultDBConnection($this->pdo, ':memory:');
    }

    public function getDataSet()
    {
        return $this->createFlatXMLDataSet(dirname(__FILE__) . '/DataSets/TestDataSet.xml');
    }

    protected function setUp()
    {
        $this->pdo = new PDO('sqlite::memory:', null, null, [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        ]);

        $configArray = require('phinx.php');

        $configArray['environments']['test'] = [
            'adapter'    => 'sqlite',
            'connection' => $this->pdo
        ];

        $config = new Config($configArray);

        $manager = new Manager($config, new StringInput(' '), new NullOutput());

        $manager->migrate('test');

        $this->getDataSet();
    }
}

Это мой тест:

class DatabaseTest extends ApiTest
{
    public function testCodes()
    {
        $count = $this->getConnection()->getRowCount('user');

        dd($count);
    }
} 

Это мои данные:

<?xml version="1.0" ?>
<dataset>
    <user id="1" username="johnsmith" password="pwdpwd" token="tokenhere" token_validity="1" deleted="0" />
</dataset>

Когда я запускаю тест, я получаю счетчик строк 0. Я ожидаю, что количество строк 1. Я знаю, что миграция работает, потому что, если я ввожу имя фиктивной таблицы, она выдаст ошибку «строка не найдена».

...