2012-06-19 21 views

Respuesta

13

La diferencia básica es la siguiente: usted expect cosas que debe suceder, y stub cosas que podría suceder.

Existen dos formas en que fallan los objetos: se llama a un método inesperado/no derivado, o no se llama a un método esperado.

  1. Inesperado invocaciones. Cuando un objeto simulado recibe un mensaje que no ha sido anulado o esperado, arroja una excepción inmediatamente y su prueba falla.
  2. Esperado invocaciones. Cuando llamas al verify en tu simulacro (generalmente al final de tu prueba), verifica que todos los métodos que esperabas fueron realmente llamados. Si no hubiera alguno, su prueba fallará.

Hay un par de tipos de simulaciones que modifican este comportamiento: bonitos simulacros y simulacros parciales. Los buenos simulacros evitan que tengas que tropezar con métodos, básicamente permiten que ocurran invocaciones inesperadas. Los simulacros parciales son una forma de interceptar mensajes enviados a objetos reales. Cualquier mensaje que espere o un fragmento en un simulacro parcial se enviará al objeto simulado. Todos los demás mensajes se envían al objeto real. Para los simulacros bonitos y los simulacros parciales, no obtendrá un error de prueba en invocaciones inesperadas (regla n. ° 1 anterior).

Cuestiones relacionadas