73 / 89 · 04 API & Contract Testing with AI · Asynchronous Testing Patterns← prev⊞ allnext →☰ Read as one page
11.6Pattern 5: Snapshot Comparison
Compare database state before and after an event to verify the event's side effects.
def test_inventory_updated_after_order(db, kafka_producer):
"""Order event should decrement inventory."""
# Snapshot before
before = db.get_inventory("prod-789")
assert before.quantity == 100
# Send order event
kafka_producer.send("order.created", {
"order_id": "ord-snap",
"items": [{"product_id": "prod-789", "quantity": 3}]
})
# Wait for processing
wait_for_condition(
lambda: db.get_inventory("prod-789").quantity != 100,
timeout=10,
message="Inventory was not updated"
)
# Snapshot after
after = db.get_inventory("prod-789")
assert after.quantity == 97, (
f"Expected 97 (100 - 3), got {after.quantity}"
)
When to use: State verification. Confirming that events correctly modify persistent state.