2011-09-09 5 views

Respuesta

37

Ambos mock y stub son alias del más genérico double. Al igual que context y describe, se pueden usar indistintamente para aclarar el propósito de las especificaciones. Esto se describe con mucha más detalle en The RSpec Book.

+4

también la documentación recomiendan usar '' double' sobre mock' y 'stub': También puede utilizar los métodos y simulacros de código auxiliar para crear dobles de prueba, sin embargo, estos métodos son allí sólo compatibilidad con versiones anteriores y es probable que sea obsoleto y luego eliminado de las versiones futuras (https://www.relishapp.com/rspec/rspec-mocks/) – welldan97

+1

Las versiones más recientes de rspec incluso generan advertencias como 'DEPRECATION: stub está en desuso. Use doble en su lugar. '. – amoebe

2

Parece que solo aliases ya que :__declared_as no parece ser usado, pero para los mensajes.

1

dobles

cuando dependemos de los componentes con características deterministas, podemos encontrar que los archivos se corrompe, el disco falla, las redes de tiempo de espera, y los servidores de ir abajo en el medio de las especificaciones de funcionamiento. porque estas son cosas sobre las que no tenemos control, pueden dar lugar a resultados inconsistentes y sorprendentes cuando ejecutamos nuestras especificaciones. los dobles pueden desconectar nuestros ejemplos de las implementaciones reales de estas dependencias.

stub

cuando el comportamiento del sistema basado en una secuencia. un stub es perfecto para esto. Porque cada ejemplo puede especificar una secuencia diferente. Por ejemplo: - En el caso de un generador aleatorio, es claramente una fuente de no determinación. queremos reemplazar el generador aleatorio real con una secuencia estable.

Mocks

algún tiempo necesitamos algún servicio de otro objeto que aún no puede existir. En casos como este, podemos presentar un objeto simulado. que podemos programar para comportarnos como el objeto que actualmente esperamos. así que cuando nos enfocamos en la interacción, los objetos simulados lo hacen mucho más fácil de lograr.

Cuestiones relacionadas