如何使用到达域模型对DDD中的域服务进行单元测试?

时间:2019-03-27 10:05:25

标签: c# .net unit-testing domain-driven-design

我用DDD原理(实体,不可变值对象,域服务,到达域模型)编写了代码。而且我现在不介绍如何对隔离的域服务进行单元测试。

现在,我对域服务的单元测试比较混乱,因为服务依赖于具有具体实现方式的覆盖面模型。

我对模型实现进行了存根处理,但是模型对构造函数中的不变量进行了检查,因此我不能简单地构造存根的空实体/值对象。

我可以通过接口将实体传递给域服务,但是随后我还需要对具有行为的每个对象(实体或值对象)使用接口。在这种情况下,我获得了大量额外的接口(非常复杂)。

带有域服务MoneyTransferService的语法示例。

def crop(image, faces, k=0):
"""
This function crops the initial image into faces' images seperately. 
Arguments:
    image  (np array image)
    faces (list of tuples)
"""
faces_arrays = []
for (top, right, bottom, left)in faces:
    x0, y0 = left, bottom
    x1, y1 = right, top
    w, h = right-left, top-bottom
    cv2.rectangle(img=image, pt1=(x0, y0), pt2=(x1, y1), color=(255,0,0), thickness=2)
    x2, x3 = x1-w,  x0+w
    # crop the region of interest over a copy 
    face = image[y1:y0, x2:x3].copy()
    faces_arrays.append(face)
    # comment the two following lines if you want to stop saving the crops
    cv2.imwrite('face'+str(k)+'.jpg', face)
    k += 1
return faces_arrays

任何想法如何模拟到达模型? 非常感谢!

P.S。我使用Fakeiteasy进行嘲笑。

0 个答案:

没有答案