원클릭으로
dbt-helpers-nullable-testing
// Implement and use Nullable Infrastructure adapters for mock-free testing. Use when writing unit tests for core logic, implementing infrastructure adapters, or setting up test fixtures.
// Implement and use Nullable Infrastructure adapters for mock-free testing. Use when writing unit tests for core logic, implementing infrastructure adapters, or setting up test fixtures.
Manage Architecture Decision Records (ADRs) using adr-tools. Use this to initialize, create, list, and link ADRs to document architectural evolution.
Scaffold and standardize new dbt-helpers plugins (Warehouse, Tool, or Schema). Use when starting a new plugin implementation or updating plugin discovery configuration.
Comprehensive workflow for creating, implementing, and validating Agent Skills. Use when asked to "create a new skill", "author a skill", "add a capability", or when standardizing project-specific workflows. Support for platform detection (Cursor, Claude Code, Gemini CLI, Codex) and template selection.
Set up the development environment for the project. Use when starting work on the project, when dependencies are out of sync, or to fix environment setup failures.
Implement and run End-to-End tests using golden output comparison. Use when verifying CLI behavior, plan generation, or full project execution.
Set up and run integration tests using Testcontainers. Use when testing warehouse adapters against real database engines or verifying filesystem-dependent operations.
| name | dbt-helpers-nullable-testing |
| description | Implement and use Nullable Infrastructure adapters for mock-free testing. Use when writing unit tests for core logic, implementing infrastructure adapters, or setting up test fixtures. |
To ensure fast, deterministic, and reliable testing without the brittleness of standard mocking libraries. This skill implements the "Functional Core, Imperative Shell" philosophy using the Nullable Infrastructure pattern.
unittest.mock for infrastructure (I/O, DB, CLI).MemoryFileSystem for file I/O.BufferEmitter for CLI output.Each infrastructure class should provide a .create_null() factory method:
class CatalogClient(ABC):
@classmethod
def create_null(cls, metadata: dict = None):
return NullCatalogClient(metadata)
.create_null() version of the adapter.CatalogClient.create_null(tables=[...])).testing.py module).