【发布时间】:2010-02-06 21:42:17
【问题描述】:
我们最近采用了用于验证域对象的规范模式,现在想要对我们的域对象进行单元测试以提高代码质量。
我发现的一个问题是如何最好地对下面示例中显示的验证功能进行单元测试。规范命中数据库,所以我希望能够模拟它,但由于它是在线实例化的,我不能这样做。我可以处理接口,但这会增加代码的复杂性,因为我们可能有很多规范,我们最终会有很多接口(请记住,我们正在引入单元测试,不想给任何人拍摄它的借口下)。
在这种情况下,我们如何最好地解决在我们的领域对象中对规范模式进行单元测试的问题?
...
public void Validate()
{
if(DuplicateUsername())
{ throw new ValidationException(); }
}
public bool DuplicateUsername()
{
var spec = new DuplicateUsernameSpecification();
return spec.IsSatisfiedBy(this);
}
【问题讨论】:
标签: c# unit-testing design-patterns agile domain-driven-design