values type mkyong example enum define java junit enums mocking suppression

type - enum values java



Pruebas JUnit: ¿Suprimir al constructor enum por burla? (1)

Estoy de acuerdo con Nick-Holt, quien sugirió agregar una interfaz:

public interface myInterface{ //add the getters/setters you want to test } public enum MyEnum implements MyInterface{ //no changes needed to the implementations //since they already implement the methods you want to use }

Ahora puedes usar las habilidades simuladas normales de Mockito sin tener que depender de Powermock

MyInterface mock = Mockito.mock(MyInterface.class); when(mock.foo()).thenReturn(...); //..etc

Sé que es posible burlarse de una única enumeración ( ¿Cómo se burla de una clase singleton enum usando Mockito / Powermock? ), Pero tengo como 1000 valores enum y pueden llamar a 5 constructores diferentes. Los valores enum a menudo cambian en desarrollo.

Realmente quiero burlarme de uno o dos para mi prueba JUnit. No me importa el resto, pero todavía están instanciados, lo que llama algunas cosas desagradables, que carga los valores de la enumeración del sistema de archivos.

Sí, lo sé, es un diseño muy malo. Pero por ahora no tengo tiempo para cambiarlo.

Por el momento tenemos Mockito / powermock en uso. Pero cualquier marco, que pueda resolver esto sh ** quiero decir mal diseño, es bienvenido.

Digamos que tengo una enumeración similar a esto:

public static enum MyEnum { A(OtherEnum.CONSTANT), B("1"), C("1", OtherEnum.CONSTANT), //...and so on for again 1000 enum values :( private double value; private String defaultValue; private OtherEnum value; /* Getter/Setter */ /* constructors */ }