Java'da JUnit Test Vakaları: Basit JUnit 5.7.1 Hepsi Bir Arada Ayrıntılarıyla Merhaba Dünya Eğitimi
Yayınlanan: 2019-10-30
JUnit nedir?
JUnit, tekrarlanabilir testler yazmak ve çalıştırmak için basit, güçlü, açık kaynaklı bir çerçevedir. JUnit test çantalarını seviyorum. Java Projesi geliştirmem sırasında, kod kapsamı için JUnit'i yoğun bir şekilde kullanıyorum. Birim test çerçeveleri için xUnit mimarisinin bir örneğidir.
JUnit özellikleri şunları içerir:
- Beklenen sonuçları test etmek için iddialar
- Ortak test verilerini paylaşmak için test fikstürleri
- Koşu testleri için test koşucuları
Bu derste 1. ve 3. noktaları ele alacağım. Projenizde aşağıdaki maven bağımlılıklarına ihtiyacınız var.
1 2 3 4 5 |
< dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > |
Kod yazmaya başlayalım.
Aşama 1
CrunchifyJunitTest
projesini oluşturun ve com.crunchify.junit
paketini belirtin. İşte hızlı başvuru için bir Paket yapısı.

Adım 2
CrunchifyJunitTest
=> Yeni Sınıf => CrunchifyJunitTest.java
sağ tıklayın
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package com . crunchify . junit ; /** * @author Crunchify * */ import static org . junit . Assert . assertEquals ; import org . junit . Test ; public class CrunchifyJunitTest { @ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 30 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello + World" , helloWorld ( ) ) ; } public int addition ( int x , int y ) { return x + y ; } public String helloWorld ( ) { String helloWorld = "Hello +" + " World" ; return helloWorld ; } } |
Aşama 3
Eclipse, @Test org.junit.Test
bağımlılığını önerir ve otomatik olarak ekler.

4. Adım
JUnit testinizi test etmek için
- Sınıfa sağ tıklayın
- Farklı Çalıştır'a tıklayın
-
JUnit Test
tıklayın
Bunun gibi bir şey görmelisin.

Adım 5
Yöntem beklenen değer paramını 30 => 300
ve Hello World => Hello -- World
değiştirmeyi deneyin ve tekrar test edin.
1 2 3 4 5 6 7 8 9 |
@ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 300 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello -- World" , helloWorld ( ) ) ; } |

Adım-6
Şimdi aynı test via other java
çalıştıralım. CrunchifyRunnerJUnit.java
oluşturun

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com . crunchify . junit ; import org . junit . runner . JUnitCore ; import org . junit . runner . Result ; import org . junit . runner . notification . Failure ; /** * @author Crunchify * */ public class CrunchifyRunnerJUnit { public static void main ( String [ ] args ) { Result result = JUnitCore . runClasses ( CrunchifyJunitTest . class ) ; for ( Failure failure : result . getFailures ( ) ) { System . out . println ( failure . toString ( ) ) ; } if ( result . wasSuccessful ( ) ) { System . out . println ( "Both Tests finished successfully..." ) ; } } } |
Adım-7
CrunchifyRunnerJUnit.java
Java Application
olarak çalıştırın.
Adım-8
1st code
olması durumunda (beklenen doğru parametre), şöyle bir çıktı görmelisiniz:
1 |
Both Tests finished successfully . . . |
Adım-9
2nd code
olması durumunda (yanlış beklenen param), şöyle bir şey görmelisiniz:
1 2 |
testingCrunchifyAddition ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Addition Result : expected : < 300 > but was : < 30 > testingHelloWorld ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Hello World String : expected : < Hello [ -- ] World > but was : < Hello [ + ] World > |
Ve hepiniz hazırsınız. Bu kodu çalıştırırken herhangi bir sorun görürseniz bana bildirin.
JUnit test çantasında Mevcut Açıklama:
Dipnot | Tanım |
---|---|
@Test genel geçersiz yöntem() | @Test ek açıklaması, bir yöntemin bir test yöntemi olduğunu tanımlar. |
@Genel geçersiz yöntemden önce() | Her testten önce yöntemi uygulayacaktır. Bu yöntem, test ortamını hazırlayabilir (örneğin, girdi verilerini oku, sınıfı başlat). |
@Genel geçersiz yöntemden sonra() | Her testten sonra yöntemi uygulayacaktır. Bu yöntem, test ortamını temizleyebilir (örneğin, geçici verileri silebilir, varsayılanları geri yükleyebilir). |
@BeforeClass genel geçersiz yöntem() | Tüm testlerin başlamasından önce yöntemi bir kez uygulayacaktır. Bu, örneğin bir veritabanına bağlanmak için yoğun zaman gerektiren faaliyetler gerçekleştirmek için kullanılabilir. |
@AfterClass genel geçersiz yöntem() | Tüm testler bittikten sonra yöntemi bir kez uygulayacaktır. Bu, örneğin bir veritabanından bağlantıyı kesmek gibi temizleme faaliyetlerini gerçekleştirmek için kullanılabilir. |
@Görmezden gelmek | Test yöntemini görmezden gelir. Bu, temel alınan kod değiştirildiğinde ve test senaryosu henüz uyarlanmadığında kullanışlıdır. Veya bu testin yürütme süresi dahil edilemeyecek kadar uzunsa. |
@Test (beklenen = İstisna.sınıf) | Yöntem, adlandırılmış özel durumu atmazsa başarısız olur. |
@Test(zaman aşımı=100) | Yöntem 100 milisaniyeden uzun sürerse başarısız olur. |
Mevcut Onay Test Yöntemleri:
İfade | Tanım |
---|---|
başarısız(Dize) | Yöntemin başarısız olmasına izin verin. Kodun belirli bir bölümüne ulaşılıp ulaşılmadığını kontrol etmek için kullanılabilir. Veya test kodu uygulanmadan önce testin başarısız olması. |
assertTrue(doğru) / assertTrue(yanlış) | Her zaman doğru/yanlış olacaktır. Test henüz uygulanmadıysa, bir test sonucunu önceden tanımlamak için kullanılabilir. |
assertTrue([mesaj], boole koşulu) | Boole koşulunun doğru olup olmadığını kontrol eder. |
assertsEquals([String iletisi], beklenen, gerçek) | İki değerin aynı olduğunu test eder. Not: diziler için dizilerin içeriği değil, referans kontrol edilir. |
assertsEquals([String iletisi], beklenen, gerçek, tolerans) | Float veya double değerlerin eşleştiğini test edin. Tolerans, aynı olması gereken ondalık basamak sayısıdır. |
assertNull([mesaj], nesne) | Nesnenin boş olup olmadığını kontrol eder. |
assertNotNull([mesaj], nesne) | Nesnenin boş olmadığını kontrol eder. |
assertSame([String], beklenen, gerçek) | Her iki değişkenin de aynı nesneye başvurduğunu kontrol eder. |
assertNotSame([String], beklenen, gerçek) | Her iki değişkenin de farklı nesnelere başvurduğunu kontrol eder. |