SORU
6 Kasım 2009, Cuma


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
6 Kasım 2009, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DavidParody

    DavidParody

    17 EKİM 2009
  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013
  • Mr. H

    Mr. H

    1 Temmuz 2012