不要将聚合根或者实体作为函数参数

2022-06-25  本文已影响0人  寻找无名的特质

今天在进行PoemGame中CheckAnswerService 的单元测试,发现单元测试不好写,因为需要测试的方法是这样的:

public async Task<bool> CheckAnswer(Game game, string answer)

传入的参数是Game聚合根,在测试时,必须先创建Game实例,才可以进行测试,并且各种测试场景必须通过创建不同的Game实例来实现,这是第一个问题。第二个问题是,在这个函数中有可能修改Game的状态,这是我们所不希望的。因此,这个函数的入口,应该是一个DTO,在需要调用函数的位置,初始化这个DTO。这样将Game和Service进行解耦。

上一篇 下一篇

猜你喜欢

热点阅读