Spock jeter l'exception de test
Je test le code Java avec Spock. J'ai tester ce code:
try {
Set<String> availableActions = getSthAction()
List<String> goodActions = getGoodAction()
if (!CollectionUtils.containsAny(availableActions ,goodActions )){
throw new CustomException();
}
} catch (AnotherCustomExceptio e) {
throw new CustomException(e.getMessage());
}
J'ai écrit test:
def "some test"() {
given:
bean.methodName(_) >> {throw new AnotherCustomExceptio ("Sth wrong")}
def order = new Order();
when:
validator.validate(order )
then:
final CustomException exception = thrown()
}
Et il échoue parce que AnotherCustomExceptio
est levée. Mais dans le try{}catch
bloc je attraper cette exception et de jeter un CustomException
donc j'ai attendu que ma méthode va jeter CustomException
et pas AnotherCustomExceptio
. Comment puis-je le tester?
Pouvez-vous développez le contexte du Code Java, montrant
Il n'est pas clair comment le code de production et de test de code qui s'affiche au-dessus de l'ajustement ensemble. (E. g. il n'y a pas d'appel à la
Avez-vous résolu ce problème?
Je ne sais pas 🙂 j'ai écrit à cette question l'an dernier 🙂 Mais, que diriez-déplacer " de la fève.methodName(_) >> {throw new AnotherCustomExceptio ("Qqch de mal")}" de la section "quand". Pourriez-vous essayer?
bean
et validator
, Order
?Il n'est pas clair comment le code de production et de test de code qui s'affiche au-dessus de l'ajustement ensemble. (E. g. il n'y a pas d'appel à la
bean#methodName
dans la production de code.) Le plus probable, l'exception n'est pas jeté par la essayez-le bloc indiqué ci-dessus. Vous devriez être en mesure de vérifier dans le débogueur.Avez-vous résolu ce problème?
Je ne sais pas 🙂 j'ai écrit à cette question l'an dernier 🙂 Mais, que diriez-déplacer " de la fève.methodName(_) >> {throw new AnotherCustomExceptio ("Qqch de mal")}" de la section "quand". Pourriez-vous essayer?
OriginalL'auteur Piotr Sobolewski | 2014-03-31
Vous devez vous connecter pour publier un commentaire.
Je crois que votre
then
bloc doit être corrigé. Essayez la syntaxe suivante:OriginalL'auteur Marcos Carceles
OriginalL'auteur Ajay