
280
2
부
이벤트 기반 아키텍처
-orm.start_mappers() # ①
+bus = bootstrap.bootstrap()
@app.route(“/add_batch”, methods=[‘POST’])
@@ -19,8 +16,7 @@ def add_batch():
cmd = commands.CreateBatch(
request.json[‘ref’], request.json[‘sku’], request.json[‘qty’], eta,
)
- uow = unit_of_work.SqlAlchemyUnitOfWork() # ②
- messagebus.handle(cmd, uow)
+ bus.handle(cmd) # ③
return ‘OK’, 201
① 더 이상
start
_
orm
()
을 호출하지 않아도 된다. 부트스트랩의 초기화 단계에서 이 함수를 호출한다.
② 더 이상 명시적으로 특정 유형의
UoW
를 만들 필요가 없다. 부트스트랩 스크립트의 디폴트 값이 이를 처
리한다.
③ 이제 메시지 버스는 전역 모듈이 아니라 구체적인 인스턴스가 된다.
3
13.8
테스트에서
DI
초기화하기
테스트에서는
bootstrap
.
bootstrap
()
을 호출하면서 디폴트 값을 오버라이드해서 테스트용
커스텀 메시지 버스를 얻을 수 있다. 다음은 통합 테스트 예제다.
부트스트랩 디폴트 값 오버라이드하기( ...