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();
}
}