logo

Finto contro Stub contro Spia

Deridere

I mock sono gli oggetti che memorizzano le chiamate ai metodi. Si riferiva ai wrapper dinamici per le dipendenze utilizzate nei test. Viene utilizzato per registrare e verificare l'interazione tra le classi Java. Un mock è noto come la versione più potente e flessibile del doppio test. Usiamo un metodo per deridere si chiama deridere() .

La funzione principale dell'utilizzo dei mock è che dà il pieno controllo sul comportamento degli oggetti mock. Gli oggetti finti vengono generalmente utilizzati per verifica del comportamento . Il termine comportamento significa verificare i metodi e i percorsi corretti applicati agli oggetti.

formattazione stringhe java

I mock vengono creati principalmente utilizzando una libreria o un framework mocking come Mockito, JMock e EasyMock. Viene utilizzato per testare un'ampia suite di test in cui gli stub non sono sufficienti. Una delle funzioni essenziali di mock è che possiamo verificare quante volte viene chiamato un determinato metodo.

Il seguente frammento di codice mostra come utilizzare mock().

 ToDoService doService = mock(ToDoService.class); 

Tronchetto

Gli stub sono gli oggetti che contengono dati predefiniti e li utilizzano per fornire risposte durante i test. In altre parole, uno stub è un oggetto che assomiglia ad un oggetto reale con il numero minimo di metodi necessari per un test. Gli stub vengono utilizzati quando non vogliamo utilizzare oggetti che diano una risposta con dati reali. Uno stub viene definito il più leggero e la versione più statica del test raddoppia.

Le principali funzioni degli stub sono:

converti la stringa in jsonobject java
  • Restituisce sempre l'output predefinito indipendentemente dall'input.
  • Può essere utilizzato per assomigliare agli oggetti del database.
  • Gli stub vengono utilizzati per ridurre le complessità che si verificano durante la creazione degli oggetti reali. Sono utilizzati principalmente per esibirsi verifica dello stato .

Spiare

Le spie sono conosciute come oggetti parzialmente finti . Significa che la spia crea un oggetto parziale o un mezzo manichino dell'oggetto reale stuzzicando o spiando quelli reali. Nello spionaggio, l'oggetto reale rimane invariato e ne spieghiamo solo alcuni metodi specifici. In altre parole, prendiamo l'oggetto esistente (reale) e sostituire O spiare solo alcuni dei suoi metodi.

Le spie sono utili quando abbiamo una classe enorme piena di metodi e vogliamo deridere alcuni metodi. In questo scenario, dovremmo preferire l’uso di spie piuttosto che di simulazioni e stub. Richiama il comportamento del metodo reale, se i metodi non vengono sottoposti a stub.

In Mockito, il metodo spy() viene utilizzato per creare oggetti spia. Ci permette di richiamare i metodi normali dell'oggetto reale. Il seguente frammento di codice mostra come utilizzare il metodo spy().

 List spyArrayList = spy(ArrayList.class); 

Differenza tra Stub e Mock

Parametri Tronchetto Deridere
Fonte di dati L'origine dati degli stub è hardcoded. Di solito è strettamente collegato alla suite di test. I dati sui mock vengono impostati dai test.
Creato da Gli stub sono solitamente scritti a mano e alcuni sono generati da strumenti. I mock vengono solitamente creati utilizzando la libreria di terze parti come Mockito, JMock e WireMock.
Utilizzo Gli stub vengono utilizzati principalmente per semplici suite di test. I mock vengono utilizzati principalmente per suite di test di grandi dimensioni.
Interfaccia utente grafica (GUI) Gli stub non hanno una GUI. I mock hanno una GUI.

Di seguito sono riportate alcune differenze tra il finto e la spia:

Parametri Deridere Spiare
Utilizzo I mock vengono utilizzati per creare oggetti completamente mock o fittizi. Viene utilizzato principalmente in suite di test di grandi dimensioni. Le spie vengono utilizzate per creare oggetti parzialmente o parzialmente simulati. Come i mock, anche le spie vengono utilizzate in grandi suite di test.
Comportamento predefinito Quando si utilizzano oggetti mock, il comportamento predefinito dei metodi (quando non stubbed) è non fare nulla (non esegue nulla). Quando si utilizzano oggetti spia, il comportamento predefinito dei metodi (quando non stub) è il comportamento del metodo reale.

Nei nostri tutorial precedenti, abbiamo discusso alcuni esempi di stub, derisione e spionaggio. Per comprendere meglio la differenza tra stunning, derisione e spionaggio, esamina gli esempi.