Bunun çok eski bir soru olduğunu biliyorum, ama deneyimimi oraya eklemek istiyorum. Son zamanlarda birim test alışkanlığını ayrı projelerden aynı soruya değiştiriyorum.
Neden?
İlk olarak ana proje klasörü yapısını test projesi ile aynı tutma eğilimindeyim. Yani, altında bir dosya varsaProviders > DataProvider > SqlDataProvider.cs
, benim gibi birim test projelerimde aynı yapı oluşturuyorumProviders > DataProvider > SqlDataProvider.Tests.cs
Ancak proje büyüdükçe, dosyaları bir klasörden diğerine veya bir projeden diğerine taşıdıktan sonra, bunları birim test projeleriyle senkronize etmek çok zahmetli bir iş haline geliyor.
İkinci olarak, test edilecek sınıftan ünite test sınıfına gitmek her zaman kolay değildir. JavaScript ve Python için bu daha da zordur.
Son zamanlarda, oluşturduğum her bir dosyanın (örneğin SqlDataProvider.cs
) Test soneki ile başka bir dosya oluşturduğumda,SqlDataProvider.Tests.cs
Başlangıçta, dosyaları ve kütüphane referanslarını şişirecek gibi görünüyor, ancak uzun vadede, ilk bakışta hareketli dosya sendromunu ortadan kaldıracaksınız ve ayrıca, test edilmeye aday olan her bir dosyanın bir çift dosyasına sahip olacağından emin olacaksınız. ile .Tests
son eki. Ayrı bir projeye bakmak yerine test dosyasına (yan yana olduğu için) kolayca atlamanızı sağlar.
Projeyi taramak ve .Tests dosyası olmayan sınıfı tanımlamak ve bunları sahibine bildirmek için iş kuralları bile yazabilirsiniz. Ayrıca test koşucunuza .Tests
sınıfları kolayca hedeflemesini de söyleyebilirsiniz .
Özellikle Js ve Python için referanslarınızı farklı yollardan içe aktarmanız gerekmeyecek, sadece test edilen hedef dosya yolunu kullanabilirsiniz.
Bu uygulamayı bir süredir kullanıyorum ve proje boyutu ile sürdürülebilirlik ve projeye yeni gelenler için öğrenme eğrisi arasında çok makul bir denge olduğunu düşünüyorum.