Je suis en train de mettre en œuvre des tests unitaires à l'aide Spock framework c'est ce que mon test ressemble à:En test unitaire Spock méthode moquée n'est pas appelé
def setup() {
scrollableResultsMock = Mock(ScrollableResults)
paymentRepositoryMock = Mock(PaymentRepository)
paymentRegistryService = new PaymentRegistryService(paymentRepositoryMock)
}
@Unroll
def 'should correctly process'() {
given:
paymentRepositoryMock.findUnconfirmedTransactions(_ as LocalDate, _ as Days) >> scrollableResultsMock
...
}
Voici la classe dans laquelle je suis en train d'injecter raillé objet:
@Service
open class PaymentRegistryService
@Autowired
constructor(
val paymentRepository: PaymentRepository
) {
@Transactional
open fun parseRegistryFileStream(input: InputStream): LinkedList<Pair<Long, String>> {
...
val registry = paymentRepository.findUnconfirmedTransactions(start, PERIOD)
...
}
}
Tout test en cours au lieu d'appeler ma méthode vraie méthode paymentRepository
est appelée. Je ne comprends pas ce qui pourrait être la raison. LocalDate
et Days
sont de Joda time et enfin c'est paymentRepository
classe:
@Repository
@Transactional
open class PaymentRepository : AbstractRepository<Payment, Long>(Payment::class.java) {
fun findUnconfirmedTransactions(start: LocalDate, days: Days): ScrollableResults = criteria().add(
and(
eq("isConfirmed", false),
ge("transactionDateTime", start),
lt("transactionDateTime", start.plus(days))
)).setCacheMode(CacheMode.IGNORE).scroll(ScrollMode.FORWARD_ONLY)
}
Avant cette réponse rapide, je voulais reproduire le problème et noté que votre code d'exemple ne montre pas comment la méthode fictive est appelée dans le test. J'ai donc dû faire des hypothèses, ce qui n'est pas bien. La prochaine fois s'il vous plaît également décrire comment vous utilisez quelque chose, pas seulement comment vous le déclarez. '...' n'est pas très utile ici. – kriegaex
Merci pour votre remarque Je vais essayer de le prévoir dans mes questions mais vous auriez pu le demander et j'aurais ajouté cette partie du code à ma question. – GROX13