In uno dei test Spock vedo una condizione strana in poi blocco:Che cosa _ (sottolineatura) significa nei test di Spock?
0 * someInstance._
Che cosa significa?
In uno dei test Spock vedo una condizione strana in poi blocco:Che cosa _ (sottolineatura) significa nei test di Spock?
0 * someInstance._
Che cosa significa?
_
è un jolly, qualsiasi oggetto. Vedi here per scoprire come è stato implementato esattamente e here per i documenti. _
è utilizzato per esempio per controllare l'invocazione di un metodo che l'argomento non importa, allora assomiglia:
1 * obj.method(1, _)
In questo caso particolare è verificato se il metodo method
su istanza obj
era invocato una sola volta con 1
come un primo argomento e qualsiasi cosa come un secondo.
EDIT: La mia risposta non risolve il problema degli operatori e si riferisce a un problema non correlato. Risposta corretta può essere visto sopra
_
è spesso usato per indicare contenuti privati / variabili in linguaggi come Groovy/Javascript
che ora seguono o fornire direttive di visibilità.
Mentre è ancora possibile accedervi dall'esterno della classe o dell'istanza, lo sviluppatore sta tentando di dirti che questa variabile è destinata a essere utilizzata solo internamente.
Java e Groovy hanno direttive di visibilità che non richiedono variabili private sottolineate, inoltre una variabile dovrebbe avere almeno * un * testo dopo il trattino basso per chiarire cosa significa. In questo caso è un carattere jolly specifico di Spock come l'altra risposta afferma correttamente. –
Hai ragione circa l'uso del carattere jolly del trattino basso (ben fatto fornendo il collegamento, non facile da trovare). Groovy ignorava le direttive sulla visibilità per un lungo periodo di tempo, potresti fornirci un link alla documentazione che mostri che questo è stato risolto? – Dennis
Non è stato risolto. Groovy tratta ancora specificamente la visibilità. Non so su una convenzione, ad es. da pitone applicato a groovy. – Opal
Un amico [link] (https://spock-framework.readthedocs.org/en/latest/interaction_based_testing.html#interactions) alla documentazione di Spock che spiega i caratteri jolly e la cardinalità ([il tuo caso specifico] (https: // spock-framework .readthedocs.org/it/ultima/interaction_based_testing.html # corrispondenza-qualsiasi-metodo-call)). –
Grazie a @GregorPetrin! Volevo mostrare l'implementazione, piuttosto l'uso, tuttavia è molto utile. – Opal
Beh, è bello averli entrambi, giusto? Comunque Spock ha documenti in due posti e la versione di Google Code sembra piuttosto ostile, quindi immagino sia sempre bene fornire un collegamento alla versione moderna .. –