Comment se moquer de Fil.sleep() avec PowerMock?

La façon de se moquer de Fil.sleep() avec PowerMock?

De l'échantillon de l'interface et la classe:

public interface Machine {

    void sleep(long millis);
}

public class MachineImpl
implements Machine {

    private static final Logger logger = Logger.getLogger(MachineImpl.class);

    @Override
    public void sleep(long millis) {
        try {
            if (millis > 0) {
                logger.trace(String.format("Try to sleep for %d millis...", millis));
                Thread.sleep(millis);
            }
        }
        catch (InterruptedException e) {
            logger.trace("Full exception", e);
        }
    }
}
Comme la Machine est une interface, pouvez-vous ne pas injecter une classe qui remplace la méthode sleep avec un vide de la mise en œuvre et de test via l'interface?

OriginalL'auteur kevinarpe | 2013-10-21