14、消息总线的实现与事件命令处理

消息总线的实现与事件命令处理

1. 实现新需求

在完成重构阶段后,我们开始实现新需求:接收 BatchQuantityChanged 事件并传递给处理程序,处理程序可能会发出 AllocationRequired 事件,这些事件将返回到现有处理程序进行重新分配。

1.1 新事件定义

新事件 BatchQuantityChanged 用于表示批次数量的更改,它只需要批次引用和新数量:

# src/allocation/domain/events.py
from dataclasses import dataclass

@dataclass
class BatchQuantityChanged(Event):
    ref: str
    qty: int

1.2 测试驱动新处理程序

我们按照抽象级别尽可能高的方式编写单元测试,以事件为基础进行测试。以下是 change_batch_quantity 处理程序的测试示例:

# tests/unit/test_handlers.py
class TestChangeBatchQuantity:
    def test_changes_available_quantity(self):
        uow = FakeUnitOfWork()
        messagebus.h
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值