Skip to content

Does integration testing now own my calendar?

Elevator answer

No. Unit-test the rule, compile-check the flow, contract-test the connector, and boot real infrastructure only for the boundary behavior a mock would lie about.

3 coffee-machine misconceptions

Test Terry

“Only production-like tests count.”

Mock Molly

“Mocks can represent a lost payment response.”

Build Barry

“A four-hour suite is confidence.”

The real explanation

Use the cheapest honest test. A pricing rule needs direct Java. An incompatible mapper type or shape should fail contract compilation; a mapper that compiles while putting billingAddress into shippingAddress needs a dedicated mapper test. A Stripe connector needs protocol-shaped tests. A durable Await or real Kafka acknowledgement may justify focused infrastructure. Booting PostgreSQL, Kafka, and half the company to test isEligible() is test panic with containers.

This is not a pyramid argument by geometry. It is an argument by failure mode. Test the cheap deterministic behavior cheaply; test the risky boundary where it actually exists; avoid booting infrastructure for a rule that is just arithmetic. A small number of high-value end-to-end paths can then prove topology without becoming the only feedback mechanism.

The trade-off is a deliberate test portfolio. Teams must resist using one layer as an excuse to skip another.

Trade-offs

TPF gains proportional evidence. It gives up a single “golden” test type.

When TPF is not a good fit

If test environments are so unreliable that focused integration tests cannot run, improve that capability before depending on distributed execution claims.