<?php
namespace Alura\Leilao\tests\Integration\Dao;
use Alura\Leilao\Dao\Leilao as LeilaoDao;
use Alura\Leilao\Infra\ConnectionCreator;
use Alura\Leilao\Model\Leilao;
use PHPUnit\Framework\TestCase;
class LeilaoDaoTest extends TestCase
{
private static \PDO $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()
{
$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();
}
}
Quando coloquei a criação da conexao no metodo setUpBeforeClass(), teste parou de retirar a inserção no banco e me apresentou esse erro depois da segunda tentativa.
There was 1 failure:
1) Alura\Leilao\tests\Integration\Dao\LeilaoDaoTest::testInsercaoEBuscaDevemFuncionar
Failed asserting that actual size 2 matches expected size 1.
F:\Material de Estudo\Arquiteto PHP\TestesDeIntegracaoComPHP_Testando o acesso a API
e ao banco de dados\codigo\tests\Integration\Dao\LeilaoDaoTest.php:45
FAILURES!
Tests: 18, Assertions: 36, Failures: 1.