В тесте Spock модульный метод не называется

Я пытаюсь реализовать модульный тест с использованием платформы Spock, это то, что мой тест выглядит следующим образом:

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 ... } 

Вот класс, в котором я пытаюсь ввести насмешливый объект:

 @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) ... } } 

Во время запуска теста вместо вызова метода метода paymentRepository метод. Я не понимаю, в чем причина. LocalDate и Days – от времени Джоды и, наконец, это класс paymentRepository :

 @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) } 

    Попробуйте следующее:

     open fun findUnconfirmedTransactions(start: LocalDate, days: Days): ScrollableResults 

    Mocking нужно расширить функцию, и Spock не сможет этого сделать, если функция не открыта в Kotlin.