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
Vous devez vous connecter pour publier un commentaire.
Ce qui m'a pris un certain temps à comprendre, donc je réponds à ma propre question.
OriginalL'auteur kevinarpe
Cela a été utile. J'ai fini à l'aide de quelque chose de légèrement différent. J'utilise EasyMock au lieu de Mockito.
Pas besoin d'utiliser
Thread.class
dans@PrepareForTest
.OriginalL'auteur Dorus