Unit testing CQRS系统中域模型属性的单元测试
我正在寻找其他人对一个特定场景的想法:在使用CQR的应用程序中对域模型(实体、VO等)属性进行单元测试 想象一个产品(实体)的简化示例,带有产品名称(VO) 该产品有一些基本的防护栏和不变量:Unit testing CQRS系统中域模型属性的单元测试,unit-testing,domain-driven-design,cqrs,accessor,Unit Testing,Domain Driven Design,Cqrs,Accessor,我正在寻找其他人对一个特定场景的想法:在使用CQR的应用程序中对域模型(实体、VO等)属性进行单元测试 想象一个产品(实体)的简化示例,带有产品名称(VO) 该产品有一些基本的防护栏和不变量: 产品名称不能超过100个字符(在VO中强制) 产品必须具有产品名称(在实体中强制,在构造函数中设置产品名称以确保其始终有效) 我可以对产品实体和产品名称VO进行单元测试,以确保通过确保引发正确的错误和异常来正确执行它们。简单 我的问题是关于单元测试的快乐之路——当产品最初开发时,成功地设置了产品名称
- 产品名称不能超过100个字符(在VO中强制)
- 产品必须具有产品名称(在实体中强制,在构造函数中设置产品名称以确保其始终有效)
产品
作为输入,并返回它的一些不可知域表示(字节[],或JSON,或其他任何形式),或者您有一个方法,该方法将产品
作为参数,以及一个接受某些不可知域表示的回调
它可能是显式的,也可能是隐式的(ORM magic?),但它会出现在某个地方——“只写”域实体不是很有趣
您的测试应该使用相同的机制
记住“单元测试”中对“单元”的一个古老理解可能会有所帮助,即测试是一个单独的独立的东西,与可能正在运行的其他测试的干扰隔离
class Product
private ProductName productName