Maybe you should add something like to ensure it is called ?

verify(spyQueue, timeout(2500).times(1)).ack(anyObject())