Я стремлюсь создать систему, основанную на чисто доменном дизайне. Насколько я знаю, это означает, что мои доменные объекты должны иметь поведение, а не форму. То есть они не должны иметь никаких добытчиков или других средств доступа.
В то же время я пытаюсь следить за процессами TDD и наткнулся на камень преткновения с тестом, который я пытаюсь написать.
[Test]
public class new_purchase_order_should_have_purchase_ordernumber_of_1
{
PurchaseOrder po = PurchaseOrder.CreatePurchaseOrder()
Assert.AreEqual(1,po.PurchaseOrderNumber);
}
public class PurchaseOrder
{
private int _purchaseOrderNumber;
static CreatePurchaseOrder()
{
_purchaseOrderNumber = SomeWayOfGettingAPONumber()
//other initialisation
}
public int PurchaseOrderNumber {get { return _purchaseOrderNumber;}
}
Если получателям не разрешено, как мне проверить, что методы CreatePurchaseOrder () работают правильно и устанавливают значение 1.
Это большое концептуальное препятствие для меня при попытке реализовать этот дизайн, поэтому любой совет будет действительно полезным.
Спасибо