Modern QA2026Pattern 5: Snapshot Comparison — tiles
Log inJoin
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.