我用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进行嘲笑。