Facebook tarafından geliştirilen Jest ile JavaScript test işlemlerini anlattım.
Unit Test nedir, ne zaman kullanılmalıdır, nasıl kullanılmalıdır bunlara yer verdim.
Bu sunumda, Mocha, Jasmine, AVA anlatımını gerçekleştirirken, Mocha ve Jest karşılaştırmalarını yaptım. Ayrıca Jest'in nasıl kullanılacağını, kendi sitesindeki örneklerden anlattım.
This document provides an overview of Selenium, an open source tool for automating web application testing. It discusses Selenium's features, components including Selenium IDE, RC, and Grid. It also covers Selenium commands called Selenium and how to perform testing with Selenium by writing reusable scripts and validating applications with conditionals. Selenium allows testing across browsers and OS using different programming languages in a flexible and cost-effective manner compared to other testing tools.
Facebook tarafından geliştirilen Jest ile JavaScript test işlemlerini anlattım.
Unit Test nedir, ne zaman kullanılmalıdır, nasıl kullanılmalıdır bunlara yer verdim.
Bu sunumda, Mocha, Jasmine, AVA anlatımını gerçekleştirirken, Mocha ve Jest karşılaştırmalarını yaptım. Ayrıca Jest'in nasıl kullanılacağını, kendi sitesindeki örneklerden anlattım.
This document provides an overview of Selenium, an open source tool for automating web application testing. It discusses Selenium's features, components including Selenium IDE, RC, and Grid. It also covers Selenium commands called Selenium and how to perform testing with Selenium by writing reusable scripts and validating applications with conditionals. Selenium allows testing across browsers and OS using different programming languages in a flexible and cost-effective manner compared to other testing tools.
Android işletim sistemine mobil uygulama geliştirirken kullanılacak en temel programlama dili Java'dır. Java ile ilgili genel bilgilere buradan ulaşabilirsiniz.
Android tüm bileşenleriyle son derece geniş bir ekosistemdir. Bu ekosistemin anlatımında aşağıdaki başlıklar temel alınmıştır:
Android’e Giriş 1 eğitiminde, temel Java bilgisine sahip olmanız ve basit Java uygulamalarını bilgisayarınızda çalıştırabilmeniz hedeflenmektedir. Java dünyasıyla ilk kez tanışacaklar için hem dilin temel kavramları hem de uygulamaya yönelik kod örnekleriyle birlikte bir anlatım esas alınmıştır.
Android’e Giriş 2 eğitiminde, Android platformunun detaylarına ve geliştirme ortamına değinilmiştir. Platform özelinde bilgiler, cihazların özellikleri ve Android için geliştirme ortamının kurulumu yer almaktadır.
Android işletim sistemine mobil uygulama geliştirirken kullanılacak en temel programlama dili Java'dır. Java ile ilgili genel bilgilere buradan ulaşabilirsiniz.
Android tüm bileşenleriyle son derece geniş bir ekosistemdir. Bu ekosistemin anlatımında aşağıdaki başlıklar temel alınmıştır:
Android’e Giriş 1 eğitiminde, temel Java bilgisine sahip olmanız ve basit Java uygulamalarını bilgisayarınızda çalıştırabilmeniz hedeflenmektedir. Java dünyasıyla ilk kez tanışacaklar için hem dilin temel kavramları hem de uygulamaya yönelik kod örnekleriyle birlikte bir anlatım esas alınmıştır.
Android’e Giriş 2 eğitiminde, Android platformunun detaylarına ve geliştirme ortamına değinilmiştir. Platform özelinde bilgiler, cihazların özellikleri ve Android için geliştirme ortamının kurulumu yer almaktadır.
2. Nedir?
• Java programlama dili için geliştirilmiş bir test
framework
• Erich Gamma ve Kent Beck tarafından geliştirilmiştir.
• Birden fazla IDE ve derlemearacı için desteği vardır.
(Eclipse, Netbeans, IntelliJ, maven, ant vb.)
² Erich Gamma; Design Patterns kitabını yazarı, Junit, Eclipse JDT ve
Microsoft Visual Studio proje lideri
² Kent Beck; Extreme Programming’nin yaratıcısı ve Agile Manifesto’nun
yazarlarından biri
3. Neye Yarar?
• Test kod tabanının standart olması
• Test ve test suite’leri oluşturulması
• Basit anlamda birim test yapabilmenizi sağlarken, belirli
framework entegrasyonları ile karmaşık testleri de
kolaylaştırır.
• Örneğin junit.framework.TestCase ile unit test
yazabilirken,
• @Runwith(SpringJUnit4ClassRunner.class) kullanarak
Spring framework ile entegre çalıştırılması sağlanabilir
4. Birim Test
• junit.framework.TestCase sınıfını kalıtan bir sınıf
içerisinde birim test yazılabilr.
• Birim testlerin koşabilmesi için test metodlarının “test”
anahtar sözcüğü ile başlaması gereklidir.
• setUp() metodu ile test öncesi ayarlar ve nesne
oluşturma işlemleri yapılabilir.
• tearDown() metodu ile setUp metodundaki ayarları
sıfırlayabilirsiniz.
• setUp her test metodu öncesinde, tearDown ise
sonrasında birer kez çalıştırılır.
5. Özellikler
• Test metodları public olmalıdır
• Metodlar void dönmelidir
• Herhangi bir parametre almamalıdır
public void testHede()
• Her test metodu tek bir akış veya birim testi yapmalıdır
• Testlerdeki çıktılar assert* ifadeleri ile kontrol edilmeli ve
bu kontrol sonrası test akışı ilerletilmelidir.
• Eğer hata olması durumu söz konusuysa fail()
kullanılmalı ve test başarısız sonuçlandırılmalıdır
6. Assert
• assertEquals
• assertNotNull
• assertSame
• assertNotSame
• assertTrue
• assertFalse
• assertThat
v assertEquals .equals() ile kontrol ederken assertSame == ile kontrol
yapar.
7. package com.turkcell.singlehub.test.unit;
Örnek
import org.apache.log4j.Logger;
import junit.framework.TestCase;
import com.turkcell.singlehub.util.MathUtils;
public class MathUtilsTest extends TestCase{
private Logger logger = Logger.getLogger(MathUtilsTest.class);
@Override
public void setUp(){
logger.debug("run setUp");
}
public void testCut(){
double d = MathUtils.cut(1.1234, MathUtils.SCALE_TWO);
String result = String.valueOf(d);
assertEquals(4, result.length());
}
public void testCut2(){
double d = MathUtils.cut(1.1234, MathUtils.SCALE_TWO);
String result = String.valueOf(d);
assertFalse(result.length() == 5);
}
public void tearDown(){
logger.debug("run tearDown");
}
8. Entegrasyon Testi
• Belirli bir akışın veya entegrasyon noktasına ait servisin test
edilmesidir.
• Junit, Spring, Hibernate vb. frameworkler ile birlikte
çalışabilmektedir.
• Spring context’ini junit ile yüklenmesini sağlayabilir ve
herhangi bir uygulama sunucusuna yükleme yapmadan
uygulamayı çalıştırabilirsiniz.
• Daha çok annotasyon ile yönetim tercih edilir.
• Method başlangıcında @Test annotasyonu varsa test
otomatik olarak çalıştırılır.
• Test öncesinde herhangi bir ayar gerekiyorsa @Before,
sonrasında ise @After annotasyonu olan metodlar Junit
tarafından otomatik olarak çalıştırılır.
9. Örnek
• @RunWith kullanılarak hangi Junit çalıştırıcı ile testin çalıştırılacağı belirtilir.
Burada Spring Framework’ünün Junit için geliştirdiği plugin kullanılmaktadır.
• @ContextConfiguration ile Spring Context’inin hangi xml dosyasından
yükleneceği gösterilmektedir.
• Test kodu için farklı context yüklenebileceği için kod tabanındaki context de
kullanılabilir. Ancak gerçek ortam kodunda sorun oluşmaması için farklı
konfigurasyon dosyası tercih edilmelidir.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:context-Test.xml"})
public abstract class AbstractTest {
}
10. Örnek
public class InvoiceServiceTest extends AbstractTest {
@Autowired
private InvoiceService invoiceService;
@Test
public void hasUnpaidInvoices() {
ServiceResult<Boolean> serviceResult = invoiceService
.hasUnpaidInvoice(user);
Assert.assertNotNull(serviceResult.getValue());
Assert.assertTrue(serviceResult.getValue());
}
}
11. Test Suite
• Test suite kullanarak istediğiniz testlerin birlikte tek bir
sınıf üzerinden koşmasını sağlayabilirsiniz.
• Bu durum belirli akışları tek bir akışta çalıştırabilmenizi
ve test senaryoları oluşturabilmesini sağlar
Örnek
@RunWith(Suite.class)
@Suite.SuiteClasses({ InvoiceServiceTest.class, SummaryServiceTest.class,
LimitManagementUtil.class, InvoiceServiceUtilTest.class })
public final class ProjectRunSuite {
}