2013-02-06 10 views
21

Ich bin neu zu Mockito.Unterschied zwischen Stub und wenn in Mockito

müssen Unterschied zwischen Stummel kennen und wenn

 1. stub(cpproxy.getBinList()).toReturn(gettestbins()); 
     2. when(cpproxy.getBinList()).thenReturn(gettestbins()); 

was ist der Unterschied zwischen diesen beiden?

Antwort

54

Eigentlich sind sie technisch gleich. Als Mockito zum ersten Mal erstellt wurde, sprachen wir über Stubs, also folgte das Vokabular dieser Idee. Später Leute dachten, es wäre besser zu denken in Interaktionen eher, dass technische Begriffe, so folgte das Vokabular der wenn ... dann ... Stil. Diese Änderung in Wortschatz hilft Menschen, über Interaktionen, Messaging zwischen Objekt zu denken. Welches ist die interessanteste Idee (Nachricht übergibt) Sache in einer objektorientierten Sprache (quoting Alan Kay).

Heutzutage hat sich der Testansatz zu "Behavior Driven Development" (von Dan North) entwickelt, was fast dasselbe ist, sich aber noch mehr auf das Verhalten zur Entwurfszeit konzentriert. Um dieses Denken zu reflektieren, haben die Leute Mockito gebeten, eine API anzubieten, die diese Veränderung widerspiegelt. So können Sie auch gegeben verwenden ... wird ... Stil von BDDMockito

given(the_type.performs_that()).willReturn(something) 

Dies ist meine bevorzugte Vokabular jetzt, da ich Tests verwenden, um meine Objekte Design zu fahren.