【发布时间】:2018-05-23 11:02:35
【问题描述】:
我有一个包含 IUserRepository 抽象的 DDD.IdentityAccess.Domain 实现。还有另一个 dll -> DDD.IdentityAccess.Persistence.Sql 包含 IUserRepository 抽象的实现。现在,我想一直测试我的 IdentityAccess -> Api -> DomainLogic -> 数据库。让我们看一个“CreateUser”用例。我通过我的 httpClient 调用“CreateUser”,然后我想查询 db 以检查用户是否实际添加到 db。我的rest api上没有'user/id'操作,所以唯一的选择是使用DDD.IdentityAccess.Persistence.Sql,但它会给DDD.IdentityAccess.Domain带来依赖。我应该重用这个 dll,还是创建另一个与域无关的 DAL?
【问题讨论】:
-
真正由您决定什么样的设计决策和权衡是有意义的!做你认为能帮助你提高工作效率的事情!
-
我明白你的意思,因为我也想过。您正在测试适配器,因此为了检查写入测试,我不会使用读取,因为它也属于适配器..您应该使用数据库的其他程序读取数据库,或者例如检查写入一个数据库触发器监听插入。
-
Gerard Meszaros 在他的书“xUnit 测试模式”第 172-173 页中也谈到了这一点。他提到“DBUnit”作为测试工具插入数据以测试“读”操作,并检查数据库的内容以测试“写”操作。
标签: domain-driven-design integration-testing ddd-repositories hexagonal-architecture