Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Problema em criar a tabela no SQLite in memory

Por algum motivo, tudo roda até a criação do banco de dados, pois o metodo salvar não consegue encontrar a tabela que estamos criando de forma estática. Testei algumas vezes e sempre estava dando erro. Pensei estar dando conflito com a tabela que estava criada antes que não estava sendo sobrescrita.



class LeilaoDaoTest extends TestCase
{
    /** @var \PDO */
    private static $pdo;

    public static function setUpBeforeClass(): void
    {


        self::$pdo = new \PDO('sqlite::memory:');
        self::$pdo->exec('create table leiloes (
            id INTEGER primary key,
            descricao TEXT,
            finalizado BOOL,
            dataInicio TEXT
        );');
    }

    protected function setUp(): void
    {
        self::$pdo->beginTransaction();
    }

    public function testInsercaoEBuscaDevemFuncionar()
    {
        // arrange
        $leilao = new Leilao('Variante 0Km');
        $leilaoDao = new LeilaoDao(self::$pdo);
        $leilaoDao->salva($leilao);

        // act
        $leiloes = $leilaoDao->recuperarNaoFinalizados();

        // assert
        self::assertCount(1, $leiloes);
        self::assertContainsOnlyInstancesOf(Leilao::class, $leiloes);
        self::assertSame(
            'Variante 0Km',
            $leiloes[0]->recuperarDescricao()
        );
    }

    protected function tearDown(): void
    {
        self::$pdo->rollBack();
    }
}


1 resposta
solução!

SOLUCIONADO:

O problema estava na injeção de dependência da classe LeilaoDao, onde a conexão ainda estava sendo feita através da classe ConnectionCreator e não pelo construtor