消息总线的实现与事件命令处理
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
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



