Test Projesi ile yeni başlayanlar için jMock Eğitimi
jMock nedir?
jMock, sahte nesnelerle test odaklı Java kodu geliştirme oluşturmaya yardımcı olan bir kütüphanedir. jMock başka bir sınıfa bağlı olan sınıfı bağımsız olarak test edebiliriz.
Bir sınıfın diğer sınıfa bağımlı olması durumunda, bağımlı sınıfın bir modelini oluşturabileceğimizi ve bağımlı sınıfı test etmek için başlangıç özelliklerini ayarlayabileceğimizi varsayalım.
jMock Öğretici Örneği:
Not: Bu Test Projesi için Eclipse platformunu kullanıyoruz. Eclipse'i şu adresten indirebilirsiniz: Burada.
Emin olmak Java SE Çalışma Zamanı Ortamı Eclipse yükleyicisinin kurulumu başlatması için zaten yüklü.
Java'da Test projesi adında bir Test projesi oluşturun. Sınıf yoluna aşağıdaki kavanozları ekleyin:
- jmock-2.5.1.jar
- hamcrest-core-1.1.jar
- hamcrest-kütüphane-1.1.jar
- JUnit-4.5.jar
ITestInterface adında bir arayüz oluşturun. Bu arayüze aşağıdaki kodu koyun:
paket testi;
genel arayüz ITestInterface
{
genel int testi();
}
TestClass1'i oluşturun. Aşağıdaki kodu bu sınıfa koyun
paket testi;
ortak sınıf TestClass1, ITestInterface'i uygular
{
genel int testi()
{
3'ü döndür;
}
}
TestClass2'yi oluşturun. Aşağıdaki kodu bu sınıfa koyun
paket testi;
genel sınıf TestClass2
{
ITestArayüz testiArayüz;
genel TestClass2()
{
this.testInterface=testInterface;
}
public int testMock()
{
int sonuç=testInterface.test();
sonuç döndür;
}
}
TestClass3'ü oluşturun. Aşağıdaki kodu bu sınıfa koyun
paket testi;
junit.framework.Assert'ı içe aktar;
org.jmock.Mockery'yi içe aktar;
org.junit.Test'i içe aktar;
genel sınıf TestClass3
{
@Ölçek
genel geçersiz testJmock()
{
org.jmock.Mockery TestInterfaceMock= new Mockery();
final ITestInterface testInterface=TestInterfaceMock.mock(ITestInterface.class);
TestInterfaceMock.checking(new org.jmock.Expectations()
{{
oneOf(testInterface).test();
will(returnValue((3)));
}});
int j=testInterface.test();
System.out.println(j);
Assert.assertEquals(j, 3);
}
}
Yukarıdaki örnekte olduğu gibi TestClass1'in ITestInterface arayüzünü uyguladığı açıktır. Burada TestClass2'nin TestClass1'e bağımlı olduğunu gözlemlersek. Yani onu birim test edilebilir hale getirmek için TestClass2'de TestClass1'den yeni bir şey yapmıyoruz. Sahte nesne kullanıyoruz.
TestClass3'te ITestInterface'in Mock nesnesini yapıyoruz. TestClass2'nin birim testi sırasında çağrıldığında bu nesnenin 3 döndürmesi beklentisini ayarlıyoruz. Örneğin TestClass3'te testInterface.test() çağrısını yaptığımızda çağrı TestClass2'ye gider. TestClass2'de testInterface.test()'i çağırdığımızda değer sahte nesne tarafından döndürülür. Bu şekilde TestClass2'yi bağımsız olarak test ediyoruz.
Yukarıdaki örneği test etmek için TestClass3'e sağ tıklayın ve Junit testi olarak çalıştır'ı seçin.
Aşağıdaki ekranı gösterecektir:
Test senaryosu başarıyla yürütüldü!
5 yanıt
Testclass2'nin testclass1'e nasıl bağımlı olduğunu öğrenebilir miyim?
Jmock hakkındaki değerli bilgileri paylaştığınız için teşekkür ederiz! Güzel bir okumaydı!
You are welcome Tanuja 🙂 Happy to help!
Güzel mesaj
Teşekkür ederim 🙂