Selam arkadaşlar

Ejb ve CDI ile geliştirilen bir projede testler nasıl yazılır?

arquillian,mockhito,junit aralarında ne gibi farklar vardır?

Arquillan nasıl kurgulanır?Ne tür testlere yöneliktir?

soruldu: 10 May '13, 04:03

Alp's gravatar image

Alp
873304447
cevap kabul oranı: 18%

değiştirildi: 11 May '13, 17:37


Merhabalar,

arquillian => kücük bir container olarak düsüneblirsin. Testlerin icin Injectioni calistirir

mockito => Mock Framework. Test etmek istedigin sinifindaki kullanilan bagimliklari mock eder. Ayrinitilar icin Mockito, Easymock gibi frameworklere göz atabilirsin.

Junit => Test calistirma icin lazim olur. TestNG örnegin ona benzer

Mockito ile yazilmis kücük bir Test:

    @InjectMocks
    private CustomerService customerService;

    @Mock
    private CustomerDao customerDao;

    @Before
    public void setUp() {
    customerService = new CustomerService();
    MockitoAnnotations.initMocks(this);
    }

    @Test
    public void shouldCallSizeWithSearchParam() throws Exception {
    // Given
    Customer customerByExample = new Customer();
    customerByExample.setFirstname("Oliver");
    customerByExample.setLastname("Samsung");

    when(customerDao.size(customerByExample)).thenReturn(23);

    SearchBean searchBean = new SearchBean();
    searchBean.addParam(new Params("firstname", "Oliver"));
    searchBean.addParam(new Params("lastname", "Samsung"));

    // When
    Integer size = customerService.size(searchBean);

    // Than
    assertThat(size, equalTo(23));
    verify(customerDao).size(customerByExample);
}
}

Selamlar

permanent link

cevaplandı: 10 May '13, 04:16

mahmut_can's gravatar image

mahmut_can ♦
2.9k62552
cevap kabul oranı: 67%

değiştirildi: 10 May '13, 04:25

arquillian konfigirasyonunu nasıl yapabilirm bununla ilgili kaynak yada örnek verebilirmisiniz? Baktıgım makaleler bana farklı geldigi için söylüyorum. Açıklamanız için teşekkürler

(10 May '13, 04:38) Alp Alp's gravatar image

Merhaba,

burda https://github.com/arquillian/arquillian-examples bir cok örnek bula bilirsin.

Ancak kullanmani hic tavsiye etmiyorum. Injection yerine Mock kullanmani tavisye ederim.

En güzel test imkanini sana Junit ile Mockito sunacaktir. Özellikle hizli bir gelistirme diliyorsan.

(10 May '13, 04:43) mahmut_can ♦ mahmut_can's gravatar image

arquillian önermiyorsunuz yani. EJB ve CDI kullanırken Junit testlerimde @inject ettigim servis veya dao'ları hangi containerda yönetmeli ve ayaga kaldırmalıyım?

(10 May '13, 05:37) Alp Alp's gravatar image
1

Kücük bir örnekte gösterdigim gibi. Mockito ile. Burda tamamen container disi islem yapma imkaniniz var.

Test sinifinda:

@InjectMocks
private CustomerService customerService;

@Mock
private CustomerDao customerDao;

CustomerService sinifinda:

@Named / @Ejb class CustomerService{

@Inject private CustomerDao customerDao;

.....

}

Ayrintilar icin mockito ya bakiniz.

Selamlar

(10 May '13, 05:44) mahmut_can ♦ mahmut_can's gravatar image

http://rmannibucau.wordpress.com/2012/09/13/use-mockito-with-openejb/

Şu örnek nasıl hocam burdaki şekilde entegre ettim ve denemelere başladım

Ama @Module nedir tam anlıyamadım. Ve kullanmadıgım zaman kullanılması zorunludur diyor.

(11 May '13, 15:44) Alp Alp's gravatar image

Merhaba,

http://city81.blogspot.de/2011/02/unit-testing-managed-beans-using.html

Arquillian kullanmadan isi cözmenin yolu.

@Module:

http://openejb.apache.org/examples-trunk/application-composer/README.html

The main difference to the embedded EJBContainer API is building the application in the test code. This is done with one or more methods in the test case annotated with org.apache.openejb.junit.Module using the following format:

Selamlar

(12 May '13, 23:46) mahmut_can ♦ mahmut_can's gravatar image

Hocam Dependency Injection için CDI kullanıyorum ve CDI app server üzerinde bir container kullandıgı için Unit testlerimde Dependency Injection kullanamadım. Öneri olarak arquillan öneriyorlar ama Junit ile yapmak istersem nasıl yapabilirim.

(18 May '13, 14:48) Alp Alp's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×14
×1
×1

Soruldu: 10 May '13, 04:03

Görüntüleme: 1,050 kez

Son güncelleme: 18 May '13, 14:48

powered by BitNami OSQA