Don't Mock the Database — Use Testcontainers Instead
EF Core InMemory and SQLite lie about PostgreSQL. Use Testcontainers to run ephemeral real databases in your integration tests — zero mocks, zero surprises in prod.
EF Core InMemory and SQLite lie about PostgreSQL. Use Testcontainers to run ephemeral real databases in your integration tests — zero mocks, zero surprises in prod.
Build a complete CRUD module with Granit in under 10 minutes — from entity definition to validated endpoints with full audit trail and soft delete.
Shared DbContexts create hidden coupling between modules. Here is how Granit enforces database isolation per module — and why it makes microservice extraction mechanical.