J'ai le test spockSpock donné, quand, alors, où l'interaction contrôle ne fonctionne pas
def "setXandSave saves the parcel with the chosen xValue"() {
given:
jpaRepository.findOne(parcelId) >> parcel
when:
repository.setXandSave(parcelId, xValue)
then:
1 * parcel.setX(xValue)
1 * jpaRepository.save(parcel)
where:
parcelId | parcel | xValue
10L | Mock(ParcelEntity.class) | "a"
20L | Mock(ParcelEntity.class) | "B"
}
suivant, je reçois une erreur « Trop peu pour les invocations: .. » pour la ligne 1 * parcel.setX(xValue)
.
Est-ce que je fais quelque chose de mal ou est-ce une limitation de Spock? J'ai débogué la méthode setXandSave
lors de l'exécution du test et est en effet appelée. Mais spock dit
Unmatched invocations (ordered by similarity):
None
Toute aide sur la façon de déboguer le problème est également apprécié.
Si je me souviens bien que vous auriez à bouchonner 'jpaRepository.findOne (parcelId) >> parcel' dans' puis: 'bloc. –
Pourriez-vous partager un peu plus de code, par ex. la création du référentiel et la méthode 'setXandSave'. En outre, pourquoi créez-vous le faux dans le bloc où et pas dans le bloc donné? –