SORU
16 ŞUBAT 2010, Salı


Nasıl mockito ile yöntemleri geçersiz alay yapmak

Nasıl boşluk ile alay yöntem döndürme türü?

Gözlemci desen ben hayata ama nasıl bilmiyorum çünkü Mockito ile alay edemem.

Ve internette bir örnek bulmaya çalıştım, ancak başaramadım.

Benim sınıf gibi görünüyor

public class World {

    List<Listener> listeners;

    void addListener(Listener item) {
        listeners.add(item);
    }

    void doAction(Action goal,Object obj) {
        setState("i received");
        goal.doAction(obj);
        setState("i finished");
    }

    private string state;
    //setter getter state
} 

public class WorldTest implements Listener {

    @Test public void word{
    World  w= mock(World.class);
    w.addListener(this);
    ...
    ...

    }
}

interface Listener {
    void doAction();
}

Sistem sahte ile tetiklenir. =( Yukarıda bahsedilen sistem durumu göstermek istiyorum. Ve iddia onlara göre.

CEVAP
17 ŞUBAT 2010, ÇARŞAMBA


Bu mockito API docs bir göz atın. Olarak bağlantılı belge bahseder (# 12) kullanabilirsiniz herhangi bir doThrow(),doAnswer(),doNothing(),doReturn() ailesinin yöntemleri mockito çerçeve alay void yöntemleri.

Örneğin

Mockito.doThrow(new Exception()).when(instance).methodName();

ya da eğer takip davranışı ile birleştirmek istiyorsanız

Mockito.doThrow(new Exception()).doNothing().when(instance).methodName();

setState(String s) sınıf Dünya ayarlayıcı aşağıda alaycı bakıyorsun o küstah kodu setState alay için doAnswer yöntemi kullanır.

World  mockWorld = mock(World.class); 
doAnswer(new Answer<Object>() {
        public Object answer(InvocationOnMock invocation) {
            Object[] args = invocation.getArguments();
            return "called with arguments: "   args;
        }
    }).when(mockWorld).setState(anyString());

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • super1988guy

    super1988guy

    9 Aralık 2007
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012