非同期シナリオ

モックが一致した場合は、実際のI/Oやawait処理へ進む前に固定結果を返せます。

python
@scenario("ユーザー取得")
async def fetch_user(user_id: int) -> dict:
    if expect:
        expect.case("成功", given={"user_id": 1}, returns={"id": 1})
    return await database.fetch_user(user_id)

並行実行の安全性

呼び出し引数と収集中ケースはContextVarでタスクごとに分離されます。複数タスクやネストしたシナリオで状態が混ざりません。