imagino que este test funciona porque el movimiento de descuento es el ultimo que se crea, pero el test iria mejor si testeasemos que existe un movimiento con monto negativo por valor del cheque

tal vez algo asi?
assert cheque.recibo.movimiento.where(monto: ( monto * -1)).any?
o
assert @cheque.movimientos.collect(&:monto).include?(Money.new(monto * -1))