JUnit çerçevesi 2 Assert
sınıf içerir (açıkçası farklı paketlerde) ve her birindeki yöntemler çok benzer görünmektedir. Bunun neden olduğunu açıklayan var mı?
Bahsettiğim sınıflar: junit.framework.Assert
ve org.junit.Assert
.
JUnit çerçevesi 2 Assert
sınıf içerir (açıkçası farklı paketlerde) ve her birindeki yöntemler çok benzer görünmektedir. Bunun neden olduğunu açıklayan var mı?
Bahsettiğim sınıflar: junit.framework.Assert
ve org.junit.Assert
.
Yanıtlar:
Eski yöntem (JUnit 3'ün) test sınıflarını genişleterek işaretlemekti junit.framework.TestCase
. junit.framework.Assert
Kendisi ve test sınıfınız kalıtsal yöntemleri bu şekilde çağırma becerisi kazandı.
JUnit'in 4. sürümünden bu yana, çerçeve Annotations
işaretleme testleri için kullanılır. Bu yüzden artık genişletmenize gerek yok TestCase
. Ancak bu, iddia yöntemleri kullanılamadığı anlamına gelir. Ancak yeni Assert
sınıfın statik olarak içe aktarılmasını sağlayabilirsiniz . Bu yüzden yeni sınıftaki tüm onay yöntemleri statik yöntemlerdir. Böylece şu şekilde içe aktarabilirsiniz:
import static org.junit.Assert.*;
Bu statik içe aktarmadan sonra, önek olmadan bu yöntemleri kullanabilirsiniz.
Yeniden tasarımda ayrıca org.junit
, paket adlandırma için normal kuralları daha iyi takip eden yeni pakete taşındılar .
Fonksiyonel bir değişiklik aslında var: org.junit.Assert
Eğer iki argümanı kullanmak durumunda şikayet edecek assertEquals()
olan float
veya double
ederken, junit.framework.Assert
sessizce AUTOBOX olacaktır.
Ben kaba bir kaynak kodu karşılaştırma yaptım ve ciddi bir değişiklik yoktur. Çok sayıda yorum eklendi org.junit.Assert
ve bazı yeniden düzenlemeler yapıldı. Tek değişiklik, karşılaştırmasıdır Arrays
. Bazı kod temizleme işlemleri var, ancak (imho) işlevsel bir değişiklik yok .
Android Studio'da (ve IntelliJ'de de), junit.framework
otomatik olarak içe aktarma teklifinin dışında bırakabilirsiniz .
Kapsamı IDE
veya arasında ayarlayabilirsiniz Project
. JUnit 3 kullanan projeleriniz yoksa IDE kapsamı içinde güvenle kalabilirsiniz.
Ayar konumu:
Tercihler -> Editör -> Genel -> Otomatik İçe Aktar
junit.framework.*
içindeki statik içe aktarma açılır listesinden hariç tutabilirsinizEditor->General->Auto Import->Exclude from Import and Completion
.