jargon

Comparison

Contract testvsData test

Contract test

the consumer's expectations are recorded and replayed against the provider's build, so nobody breaks the other by surprise.

A test asserting that a provider satisfies the specific expectations of its consumers, run in the provider's pipeline. It catches integration breakage without a full end-to-end environment, which is the trade that makes it worth the setup. It only covers the interactions consumers actually declared.

Full entry →

Data test

the transform ships with a check that this column is never null, and the check runs against real output every night rather than against a fixture.

An assertion evaluated against actual data in the warehouse, rather than against code. It is a fundamentally different thing from a unit test: the code did not change, the input did, so it must run on every load rather than in CI. That also means it can fail at 03:00 for reasons nobody controls, which is why every data test needs a decision attached about whether failing it stops the pipeline.

Full entry →

Related comparisons