Kuruluşum için yönergeleri bir araya getirmeye yardımcı olacak birim test en iyi uygulamalarını araştırırken, test fikstürlerini (test sınıfları) ayırmanın veya tüm testleri tek bir sınıfta tek bir dosyada tutmanın daha iyi veya yararlı olup olmadığı sorusuyla karşılaştım.
Fwiw, saf anlamda tek bir sınıfı, test başına bir iddiayı, tüm bağımlılıkları alay etmeyi vb. Hedefleyen beyaz kutu testleri olduklarından "birim testler" den bahsediyorum.
Örnek senaryo, iki yöntemi olan bir sınıftır (Belge olarak adlandırın): CheckIn ve CheckOut. Her yöntem, davranışlarını kontrol eden çeşitli kurallar vb. Uygular. Test başına tek onaylama kuralına göre, her yöntem için birden fazla test yapacağım. Tüm testleri ya ve DocumentTests
gibi adlarla tek bir sınıfa yerleştirebilirim .CheckInShouldThrowExceptionWhenUserIsUnauthorized
CheckOutShouldThrowExceptionWhenUserIsUnauthorized
Veya iki ayrı test sınıfım olabilir: CheckInShould
ve CheckOutShould
. Bu durumda, test isimlerim kısalır, ancak belirli bir davranış (yöntem) için tüm testler bir arada olacak şekilde organize edilirler.
Eminim pro's ve con ya yaklaşım ve herkes birden fazla dosya ile rota gittiğini merak ediyorum ve eğer öyleyse, neden? Veya tek dosya yaklaşımını seçtiyseniz, neden daha iyi olduğunu düşünüyorsunuz?
testResponseContainsSuccessTrue()
, testResponseContainsMyData()
ve testResponseStatusCodeIsOk()
. Bir single onları olurdu testResponse()
üç iddia etti: assertEquals(200, response.status)
, assertEquals({"data": "mydata"}, response.data)
veassertEquals(true, response.success)