Class IntegracaoComPostgres
- All Implemented Interfaces:
PostgresTestPropertyProvider, io.micronaut.test.support.TestPropertyProvider, Supplier<Map<String,String>>
@MicronautTest com o Postgres de teste da casa: o singleton do
PostgresTestResource, injetado pelo PostgresTestPropertyProvider, com as tabelas do
app zeradas antes de cada teste.
O banco sobrevive entre classes de teste, então o teste não conta com o que outra classe, ou um
teste anterior, gravou. O @BeforeEach da subclasse roda depois desta limpeza e semeia sobre
banco vazio. O histórico do Flyway fica fora da limpeza (PostgresTestResource.limparTabelas()).
Tabela semeada por migration (configuração, domínio fixo) também é zerada, e o Flyway não regrava o seed: app com seed não usa esta base e escreve a própria limpeza, só das tabelas que os testes gravam.
@MicronautTest
class PedidoRepositoryTest extends IntegracaoComPostgres {
@Inject
PedidoRepository repositorio;
}
O @TestInstance(Lifecycle.PER_CLASS) que o PostgresTestPropertyProvider exige vem
herdado desta base.
A base traz a IntegracaoDocker: a subclasse herda a tag docker e a
DockerDisponivelCondition sem repetir anotação nenhuma, então, sem Docker, ela pula com o
motivo em ERROR no lugar de falhar. A rodada que pula não prova a integração; o gate da CI
roda com Docker.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstrutor das subclasses de teste. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidZera as tabelas do app antes de cada teste.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface PostgresTestPropertyProvider
getPropertiesMethods inherited from interface io.micronaut.test.support.TestPropertyProvider
get
-
Constructor Details
-
IntegracaoComPostgres
protected IntegracaoComPostgres()Construtor das subclasses de teste.
-
-
Method Details
-
limparTabelas
Zera as tabelas do app antes de cada teste.- Throws:
SQLException- se a limpeza falha no banco
-