Ho un test di unità in cui sto prendendo in giro la classe java.net.URI
. Inoltre, sto creando un jMockit NonStrictExpectation
dove mi aspetto invocazione di URI.getPath()
e restituendo una stringa particolare.Restituisce valori diversi ogni volta da jMockit expectation
Il codice in prova invoca il numero URI.getPath()
due volte, in cui è necessario inviare una stringa diversa ogni volta.
Ecco il mio metodo effettivo in prova:
public void validateResource() {
// some code
URI uri = new URI(link1.getHref());
String path1 = uri.getPath();
// some more code
uri = new URI(link2.getHref());
String path2 = uri.getPath();
}
Ecco il codice di prova di unità:
@Mocked URI uri;
@Test
public void testValidateResource() {
new NonStrictExpectations() {
{
// for the first invocation
uri.getPath(); returns("/resourceGroup/1");
// for the second invocation [was hoping this would work]
uri.getPath(); returns("/resource/2");
}
};
myObject.validateResource();
}
Ora, voglio "/resource/2"
essere tornato dalla mia aspettativa quando il URI.getPath()
si chiama secondo tempo. Ma colpisce sempre la prima aspettativa e restituisce "/recourceGroup/1"
. Questo è il mio problema.
Come posso farlo? Non posso davvero usare StrictExpectations
a causa di una serie di motivi, e dovrò attenermi a NonStrictExpectations
.
Ha funzionato come un fascino ... Grazie :) –
Grande, felice ha funzionato! –
Il collegamento alla documentazione nella risposta è rotto. Ecco un aggiornamento [collegamento] (http://jmockit.org/tutorial/Mocking.html#results) –