JUnit 4 şartlı görmezden testleri
TAMAM, o @Ignore
açıklama test çalışması çalıştırma olmaması gereken işaretleme için iyidir.
Ancak, bazen bir test zamanı bilgilere dayanarak görmezden gelmek istiyorum. Örnek olarak, eğer bir çekirdek, belirli bir sayı ile bir makine üzerinde çalıştırmak için gereken bir eşzamanlılık test varsa olabilir. Eğer bu test edildi bir tek işlemcili makine, sanmıyorum olacağını gidermek için testi yaptırmak (beri olmadı Çalıştır), ve kesinlikle olmazdı değil mi başarısız test ve mola oluşturun.
Bu doğru sonucu test çerçeve oluşturmak testleri değildi ama kayda geçmesi için izin verir, çünkü () gibi görünüyor, zamanında testleri görmezden gelmek mümkün olmak istiyorum. Bu açıklama bana bu esneklik vermeyecektir oldukça eminim, ve el ile söz konusu sınıf için test paketi oluşturmak için ihtiyacım var o şüpheli. Ancak, belgelere değil söz bir şey hakkında bu ve yoluyla API o da belli değil bu nasıl olacak yapılan Program aracılığıyla (yani nasıl programlama yoluyla bir örneğini oluşturur Test
veya benzer eşdeğerdir oluşturulan tarafından @Ignore
ek açıklama mı?).
Kimseye bir şey geçmişte benzer yaptı, ya da bu konuda gitmek nasıl parlak bir fikir varsa, bunu duymak mutluluk duyarım.
CEVAP
JUnit-zamanında org.junit.Assume
bunu yapmak için.
@Before
public void beforeMethod() {
org.junit.Assume.assumeTrue(someCondition());
// rest of setup.
}
@After
bir yöntem veya test kendisi @Before
bir yöntem, ama bunu yapabilirsiniz. Eğer sınavda yaparsan, @Before
yöntem çalıştırın.
Varsayım hatası testi göz ardı neden olur.
Düzenleme:@RunIf
ek açıklama ile karşılaştırmak içinjunit-extörnek kod şöyle:
@Test
public void calculateTotalSalary() {
assumeThat(Database.connect(), is(notNull()));
//test code below.
}
Çok daha kolay yakalama ve Database.connect()
yöntemi bu şekilde bağlantı kullanmak için en iyi olduğunu söylemiyorum bile.
Junit: bölme entegrasyon test ve Birim...
Maven çalıştırmak için JUnit testleri ...
Nasıl Eclipse saplama Junit testleri o...
Eclipse/Maven: JUnit testleri onları ç...
Nasıl tüm testleri JUnit 4 belirli bir...