2010-08-27 12 views
26

Eski bir JAAS/LDAP oturum açma modülünü test etmek için mockito kullanıyorum. Testi geçmek için manipüle edilmesi gerekir amacı, bir NameCallback, içeren callbacks bekliyorumMockito kullanma, void yönteminde geri arama nesnesini nasıl engellerim?

void handle(javax.security.auth.callback.Callback[] callbacks) 

:

javax.security.auth.callback.CallbackHandler arayüz fonksiyonu tanımlar.

Bunu etkili bir şekilde alay etmenin bir yolu var mı, yoksa CallbackHandler stubbed uygulamasıyla daha mı iyi olurum? void dönen fonksiyonları için

cevap

33

, örneğin doAnswer()

doAnswer(...).when(mockedObject).handle(any(Callback[].class)); 

ve durdurma doAnswer parametre olarak gitmek gerekir gerçekleştiren bir Answer kullanımı isimsiz sınıf olarak: Bu durumda args yılında

new Answer() { 
    public Object answer(InvocationOnMock invocation) { 
     Object[] args = invocation.getArguments(); 
     Mock mock = invocation.getMock(); 
     return null; 
    }} 

dizi Callback[] olacak!