JUnit 5
Java , JUnit / 31 Ekim 2016

Merhaba değerli Java dostları, bu yazımda taze taze JUnit 5 konusuna bir giriş yapmak istiyorum. Daha detaylı yazılarımı biraz daha inceleyip örnek yaptıktan sonra yazmayı planlıyorum. Kısaca bu yazımda getirdikleri ve götürdüklerine değinmek istiyorum. Öncelikle edindiğim ilk izlenim JUnit 5 in çok da birşey getirmediği yönünde. Daha çok yeni Java sürümleri ile beraber – ki özellikle Java  8 – güncel bir JUnit seti yayınlanmak istenmiş. Tabi bu geriye doğru yani JUnit 3 ve JUnit 4 için uyumluluk yok anlamına gelmiyor. Paylas    

Java Mock
Java , JUnit / 19 Kasım 2014

Test işleri ile uğraşırken “Mock” ifadesini duymayan yoktur herhalde. Kısaca tarif edecek olursam, testler sırasında henüz hazır olmayan kaynakları, hazır olduğu halde uzun sürebilecek kaynakları, henüz kodlanmamış blokları vb durumları taklit etmek olarak tanımlayabilirim. Bunun için bazı hazır frameworkler mevcut. Aşağıda popüler olanları bulabilirsiniz. http://easymock.org/ Paylas    

Kod – Test İpuçları
Java , JUnit / 17 Kasım 2014

Bu yazımda kod – test aşamasında bize kolaylık sağlayacak bazı ipuçlarını paylaşmak istiyorum. Dışarıdan erişilebilir metotların dönüş tipleri ve aldığı parametrelerin tipleri değiştirilmemelidir. Başkaları tarafından kullanılma ihtimali olduğundan çağrılan her yerde değişiklik yapmak gerekecektir. Sınıfların birbirilerine olan bağımlılıkları mümkün olduğunca azaltılmalı. Yani bir sınıf içerisinde başka bir sınıfı oluşturmak yerine set metodu ile dışarıdan gönderilmelidir. Böylece hem çok sayıda instance oluşması önlenmiş olacak hem de tüm sınıflar aynı instance üzerinden işlem yapacaktır. Basit constructorlar yazmak her zaman iyidir. Ayrıca gerekli initialize işlemleri yapılabilir. Sınıflar birbirileri hakkında mümkün olduğunda az şey bilmelidir. İhtiyacı olan objeyi set metotları ile alması daha uygun olur. Kimi noktalarda ortak yapıyı sağlamak için Singleton tasarım kullanılabilir. OOP’ nin nimetlerinden mümkün olduğunca faydalanmak gerekir. Paylas    

JUnit Expected Exception
Java , JUnit / 13 Kasım 2014

Bazı test caseler için exception verebilir ve verdiğinde de bunun başarılı bir sonuç olmasını isteyebiliriz; çümkü çalışmasını istediğimiz şartlar sadece olumlu şartlar olmayabilir. Hemen kısa bir örneğe göz atalım. package com.farukbozan.jfr.util; public class ExceptionClass {public double div(double value1, double value2) throws ArithmeticException { if (value2 == 0) { throw new ArithmeticException(); } return (value1 / value2); }} Paylas    

JUnit Timeout
Java , JUnit / 12 Kasım 2014

Testlerimiz sırasında herhangi bir test case için limit süre vermek isteyebiliriz. Bizim için bu limit süreyi aşan testler başarısız anlamına gelmektedir. İşte kısa, hızlı ve basir bir örnek. @Test(timeout = 100) public void testPrint() { Timeout instance = new Timeout(); instance.print(); } Paylas    

JUnit Runner
Java , JUnit / 11 Kasım 2014

Daha önceki üç JUnit yazımın toplam bir değerlendirmesi olarak bu yazımda Runner yapısına değinmek istiyorum. Runner, JUnit içerisinde testleri ve test caseleri çalıştıracak olan ana yapıdır. Default değerinin yanı sıra farklı bir Runner ile çalıştırılmak isteniyorsa extends edilerek kullanılır. Dolayısıyla şimdiye kadar baktığımız örneklerle şu üç Runner sınıfını ortaya çıkarabiliriz. Default Parameterized Suite Paylas    

JUnit Parameterized Test
Java , JUnit / 10 Kasım 2014

Daha önceki iki JUnit yazımın ilkinde basit bir test sınıfı, ikincisinde ise birkaç test sınıfını bir arada çalıştıracak bir suite yapısını görmüştük. Şimdi ise sıra geldi bir testin farklı parametrelerle ardışık ve otomatik olarak JUnit tarafından çağrılmasına. Yani elimizde var olan parametre seti için tek tek test caseler tanımlamak yerine bunu otomatik hale getirip, bu işi bizim için JUnit’ in yapmasını istiyoruz. Hemen örnek kodumuza bakalım. package com.farukbozan.jfr.junit;import java.util.ArrayList; import java.util.Collection; import org.junit.After; import org.junit.AfterClass; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters;@RunWith(Parameterized.class) public class ParameterTest { Paylas    

JUnit Test Suite
Java , JUnit / 07 Kasım 2014

JUnit ile ilgili bir önceki yazımda kısa bir giriş yapmıştık ve basitçe nasıl birim testlerin yapılacağına göz atmıştık. Şimdi ise sıra suite olayında. Yani birden çok test sınıflarını ve içlerindeki testleri tek bir hamlede çalıştırmak. Bunun için örnek iki test sınıfımız olsun. package com.farukbozan.jfr.junit;public class RandomValueGenerator {public double generateRandomDouble() { return Math.random(); }} Paylas    

JUnit
Java , JUnit / 01 Eylül 2010

Bu yazımda Java’ da test işlemlerine değinmeye çalışacağım. Öncellikle test işlemi nedir, bunu bir tarif etmeye çalışalım. Uygulamaların kodlama süreci boyunca birçok hata ile karşı karşıya kaldığımız ve hala da kalabileceğimiz kaçınılmaz bir gerçek. Peki bu hataları bulup düzeltme yöntemleri içerisinde en çok kullanılanları nelerdir diye soracak olursam herhalde genel cevap şu olur: debug, test kodları ve tabiki araya serpiştirilmiş System.out.println() kodları 😀 :D. Öncelikle debug ile test arasında farka bakalım. Debug işleminde olaylar adım adım gider ve kullanıcı dönen değerleri kendi kontrol etmek zorundadır. Test işleminde ise kullanıcının kontrol etmesine gerek kalmadan karşılaştırmaları ve doğruluğu yanlışlığı JUnit yapar. Kullanıcıya sadece beklenen ve o anki değerleri verip ekranın altındaki çıktı bölümüne bakmak düşer :D. İsterseniz hemen bir örneğe göz atalım. Paylas