JUnit - Onaylamayı Kullanma
İddia
Tüm iddialar Assert sınıfındadır.
public class Assert extends java.lang.Object
Bu sınıf, test yazmak için yararlı olan bir dizi onaylama yöntemi sağlar. Yalnızca başarısız iddialar kaydedilir. Assert sınıfının önemli yöntemlerinden bazıları aşağıdaki gibidir -
Sr.No. | Yöntemler ve Açıklama |
---|---|
1 | void assertEquals(boolean expected, boolean actual) İki temel öğenin / nesnenin eşit olup olmadığını kontrol eder. |
2 | void assertTrue(boolean condition) Bir koşulun doğru olup olmadığını kontrol eder. |
3 | void assertFalse(boolean condition) Bir koşulun yanlış olup olmadığını kontrol eder. |
4 | void assertNotNull(Object object) Bir nesnenin boş olmadığını kontrol eder. |
5 | void assertNull(Object object) Bir nesnenin boş olup olmadığını kontrol eder. |
6 | void assertSame(object1, object2) AssertSame () yöntemi, iki nesne başvurusunun aynı nesneyi işaret edip etmediğini test eder. |
7 | void assertNotSame(object1, object2) AssertNotSame () yöntemi, iki nesne başvurusunun aynı nesneyi işaret edip etmediğini test eder. |
8 | void assertArrayEquals(expectedArray, resultArray); AssertArrayEquals () yöntemi, iki dizinin birbirine eşit olup olmadığını test eder. |
Bir örnekte yukarıda belirtilen yöntemlerden bazılarını kullanalım. Adlı bir java sınıf dosyası oluşturunTestAssertions.java C: \> JUNIT_WORKSPACE konumunda.
import org.junit.Test;
import static org.junit.Assert.*;
public class TestAssertions {
@Test
public void testAssertions() {
//test data
String str1 = new String ("abc");
String str2 = new String ("abc");
String str3 = null;
String str4 = "abc";
String str5 = "abc";
int val1 = 5;
int val2 = 6;
String[] expectedArray = {"one", "two", "three"};
String[] resultArray = {"one", "two", "three"};
//Check that two objects are equal
assertEquals(str1, str2);
//Check that a condition is true
assertTrue (val1 < val2);
//Check that a condition is false
assertFalse(val1 > val2);
//Check that an object isn't null
assertNotNull(str1);
//Check that an object is null
assertNull(str3);
//Check if two object references point to the same object
assertSame(str4,str5);
//Check if two object references not point to the same object
assertNotSame(str1,str3);
//Check whether two arrays are equal to each other.
assertArrayEquals(expectedArray, resultArray);
}
}
Ardından, adında bir java sınıf dosyası oluşturun TestRunner.java C: \> JUNIT_WORKSPACE içinde test olay (lar) ını yürütmek için.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner2 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestAssertions.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Test durumunu ve Test Runner sınıflarını javac kullanarak derleyin.
C:\JUNIT_WORKSPACE>javac TestAssertions.java TestRunner.java
Şimdi, sağlanan Test Case sınıfında tanımlanan test senaryosunu çalıştıracak olan Test Runner'ı çalıştırın.
C:\JUNIT_WORKSPACE>java TestRunner
Çıkışı doğrulayın.
true
Ek açıklama
Ek açıklamalar, kodunuza ekleyebileceğiniz ve bunları yöntemlere veya sınıfta uygulayabileceğiniz meta etiketler gibidir. JUnit'teki bu ek açıklamalar, test yöntemleri hakkında aşağıdaki bilgileri sağlar -
- test yöntemlerinden önce ve sonra hangi yöntemlerin çalıştırılacağı.
- tüm yöntemlerden önce ve sonra hangi yöntemlerin çalıştığı ve.
- yürütme sırasında hangi yöntemlerin veya sınıfların yoksayılacağı.
Aşağıdaki tablo ek açıklamaların bir listesini ve bunların JUnit'teki anlamlarını sağlar -
Sr.No. | Ek Açıklama ve Açıklama |
---|---|
1 | @Test Test ek açıklaması JUnit'e eklendiği genel void yönteminin bir test senaryosu olarak çalıştırılabileceğini söyler. |
2 | @Before Birkaç testin çalıştırılmadan önce benzer nesnelerin oluşturulmasına ihtiyacı vardır. Bir genel void yöntemine @Before ile açıklama eklemek, bu yöntemin her Test yönteminden önce çalıştırılmasına neden olur. |
3 | @After Bir Before yönteminde harici kaynakları ayırırsanız, bunları test çalıştırdıktan sonra serbest bırakmanız gerekir. Genel bir void yöntemine @After ile açıklama eklemek, bu yöntemin Test yönteminden sonra çalıştırılmasına neden olur. |
4 | @BeforeClass Genel bir statik void yöntemine @BeforeClass ile açıklama eklemek, bu yöntemin sınıftaki herhangi bir test yönteminden önce bir kez çalıştırılmasına neden olur. |
5 | @AfterClass Bu, yöntemi tüm testler bittikten sonra gerçekleştirecektir. Bu, temizlik faaliyetlerini gerçekleştirmek için kullanılabilir. |
6 | @Ignore Yoksay notu, testi yok saymak için kullanılır ve bu test yürütülmez. |
Adlı bir java sınıf dosyası oluşturun JunitAnnotation.java ek açıklamayı test etmek için C: \> JUNIT_WORKSPACE içinde.
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
public class JunitAnnotation {
//execute before class
@BeforeClass
public static void beforeClass() {
System.out.println("in before class");
}
//execute after class
@AfterClass
public static void afterClass() {
System.out.println("in after class");
}
//execute before test
@Before
public void before() {
System.out.println("in before");
}
//execute after test
@After
public void after() {
System.out.println("in after");
}
//test case
@Test
public void test() {
System.out.println("in test");
}
//test case ignore and will not execute
@Ignore
public void ignoreTest() {
System.out.println("in ignore test");
}
}
Ardından, adında bir java sınıf dosyası oluşturun TestRunner.java ek açıklamaları yürütmek için C: \> JUNIT_WORKSPACE içinde.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(JunitAnnotation.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Test durumunu ve Test Runner sınıflarını javac kullanarak derleyin.
C:\JUNIT_WORKSPACE>javac JunitAnnotation.java TestRunner.java
Şimdi, sağlanan Test Case sınıfında tanımlanan test senaryosunu çalıştıracak olan Test Runner'ı çalıştırın.
C:\JUNIT_WORKSPACE>java TestRunner
Çıkışı doğrulayın.
in before class
in before
in test
in after
in after class
true