2012-02-15 6 views
8

Me gustaría entender mejor EasyMock, y al trabajar con él surgió esta pregunta.Establecer expectativas negativas en EasyMock

Lo que me gustaría hacer es establecer una expectativa negativa sobre un objeto, para verificar si no se llama un determinado método durante la prueba (cuando se verifican las expectativas iniciales).

Sé que el comportamiento predeterminado de verify es verificar ambos casos: se cumplieron sus expectativas y no se realizaron otras llamadas; pero no hay constancia en la prueba de que no se llame a un determinado método; en otras palabras, si establece una expectativa sobre este método y no recibe una llamada, su prueba fallará (¡confirmando que su implementación se comporta correctamente!) .

¿Hay alguna manera de usar EasyMock para configurar esto? No pude encontrar nada en la documentación.

Gracias por su atención, y de antemano por su ayuda!

Respuesta

11

La forma en que funciona EasyMock es así:

  1. crear un objeto de burla para la interfaz que desea simular,
  2. registro del comportamiento esperado, y
  3. interruptor del objeto de burla para reproducir estado .

Al igual que en la siguiente si no se establece ninguna expectativa:

mock = createMock(YourInterface.class); // 1 
// 2 (we do not expect anything) 
replay(mock); // 3 

entonces significa que si ClassUnderTest llamar a cualquiera de los métodos de la interfaz, el objeto de burla generará un AssertionError así:

java.lang.AssertionError: 
    Unexpected method call yourMethodWhichYouDidNotExpectToBeCalled(): 

Esto en sí es Expectativa negativa comprobación.

Cuestiones relacionadas