2012-07-30 21 views
18

He visto algunas preguntas al respecto con respecto a esto, pero parece que no puedo encontrarle sentido a ninguna de las respuestas para mi problema en particular.Cómo probar métodos vacíos usando EasyMock

Tengo un objeto de simulacro, vamos a llamar "object1", que le envío a algún método para probarlo, vamos a llamar a testMethod(). Así que termino llamando a

testMethod(object1); 

para la prueba. Ahora en algún lugar de esta testMethod, habrá una parte donde se llama a un método

object1.toggleDisplay(); 

que es un método vacío. Si el método eran como

object1.getDisplay() 

en que incluso se vuelve algo, que suele hacer

EasyMock.expect(object1.getDisplay()).andReturn(whatever); 

Sin embargo, este es un método vacío, y me gustaría probar simplemente que esto ha hecho ha sido llamado por una cierta cantidad de veces. ¿Cuál es la forma más fácil de hacer esto?

Gracias

Respuesta

22

Si las cosas no han cambiado en los últimos años, se utilizan expectLastCall la hora de establecer sus expectativas.

object1.toggleDisplay(); 
object.expectLastCall(); 
+1

Espere por lo que tengo que poner object.expectLastCall() dentro de mi método actual? Tengo mis clases de prueba de unidad y mis clases de programa reales separadas, y preferiría no tener código de prueba de unidad dentro de mi programa real. – KWJ2104

+0

No, usted pone la llamada al método y 'expectLastCall(). Times (NUM_TIMES)' dentro de su unidad de prueba donde previamente habría utilizado 'EasyMock.expect (object1.getDisplay()). AndReturn (lo que sea)' – DoctorRuss

+0

¿Hay ¿De alguna manera puedo hacer esto para apuntar a métodos específicos? Como por ejemplo, tengo los métodos toggleOn() y toggleOff() – KWJ2104

10
object1.toggleDisplay(); 
EasyMock.expectLastCall().times(5); 

o si importa estáticamente los EasyMock métodos:

import static org.easymock.EasyMock.*; 

[...] 

object1.toggleDisplay(); 
expectLastCall().times(5); 
Cuestiones relacionadas