Birim testleri yazmak istediğim bir yöntem var. Metodun uygulanmasını tartışmak istemediğim için oldukça genel tutacağım, sadece test etmek. Yöntem:
public void HandleItem(item a)
{
CreateNewItem();
UpdateStatusOnPreviousItem();
SetNextRunDate();
}
Bu sınıfın, daha sonra mantığı gerçekleştirmek için bazı özel yöntemleri çağıran bir genel yöntemi vardır.
Bu yüzden birim testini yazarken her üç şeyin de yapıldığını kontrol etmek istiyorum. Hepsi aynı koşuda çağrıldığından, bir test olarak yapabileceğimi düşündüm:
public void GivenItem_WhenRun_Thenxxxxx
{
HandleItem(item);
// Assert item has been created
// Assert status has been set on the previous item
// Assert run date has been set
}
Ama üç ayrı test olarak da yazabileceğimi düşündüm:
public void GivenItem_WhenRun_ThenItemIsCreated()
{
HandleItem(item);
}
public void GivenItem_WhenRun_ThenStatusIsUpdatedOnPreviousItem()
{
HandleItem(item);
}
public void GivenItem_WhenRun_ThenRunDateIsSet()
{
HandleItem(item);
}
Bu yüzden benim için bu aslında gereksinimleri listelemek gibi daha güzel görünüyor, ancak daha sonra üçü de ilgili ve test edilen yöntemde yapılanla aynı işi gerektiriyor, bu yüzden aynı kodu 3 kez çalıştırıyorum.
Bununla ilgili önerilen bir yaklaşım var mı?
Teşekkürler