Pregunta

He leído esto: http://martinfowler.com/articles/mocksArentStubs.html Mis conceptos sobre un talón y una maqueta son claras. Entiendo la necesidad de marcos de aislamiento como moq, RhinoMocks y como para crear un objeto de burla. Como se burla, participar en VERIFICACION real de las expectativas. Pero ¿por qué necesitamos estos marcos para crear talones. Yo prefiero preferir el despliegue de un talón de la mano creado y utilizarlo en diversos accesorios.

¿Fue útil?

Solución

¿Ha intentado utilizar una biblioteca como burla de Rhino por un día o dos antes de decidir que los talones hechos a mano es una mejor opción?

@chibacity: La idea acerca de las bibliotecas de burla es a evitar implementaciones. Si solo necesita ajustar el valor de una sola propiedad, no quiero crear toda una implementación de una interfaz. Código de llamada como

MyObj obj = MockRepository.GenerateStub<MyObj>();
obj.MyProperty = 33;

parece mucho más simple para mí. Por no hablar de situaciones en las que sólo se necesita un trozo tonto como para ser pasado como un parámetro en el que no importa lo que sucede con él (por lo que no se requiere instalación).

Esto no quiere decir que no debe lanzar sus propios talones para los escenarios más complejos, pero en mi experiencia de estos casos son poco frecuentes.

Mi recomendación es aprender cómo utilizar una biblioteca buena burla (como Rhino) con todos sus pequeños trucos, mi apuesta es que pronto aprenderá a apreciar las razones de su existencia.

Otros consejos

En sentido estricto, no, no lo hace necesidad un marco de aislamiento para crear talones. De hecho, Microsoft tiene incluso un Talones Marco que solamente genera trozos, no se burla.

Nunca he escrito un marco de aislamiento a mí mismo, pero parecería que una vez que tenga burla objeto en su lugar, trozos sería muy fácil de crear. Esa podría ser la razón principal por la que la mayoría de los marcos / aislamiento incluyen objetos de código auxiliar.

En lo que respecta a su última frase ( "Prefiero prefieren el despliegue de un talón de la mano creado y utilizarlo en varios accesorios"), ¿ha intentado realmente que en cualquier proyecto importante? Claro, tal vez usted tiene una interfaz con un único método que devuelve un bool anulable -. Solo tienen que escribir tres recibos para esa interfaz, y eso no es tan malo

Pero una vez que se empieza a observar decenas de interfaces y clases para talón, se convierte simplemente en un desastre para realizar un seguimiento de todos los diferentes talones. Si está utilizando cada ramal en varias pruebas, que sin duda puede justificar un talón y ponerlo a un lado de escritura de la mano; pero cuando sólo se utilice un talón particular, una o dos veces, es mucho más fácil de mantenerlo como un talón de "anónimo" generada directamente por el marco, por razones de simplicidad.

Después de usar marcos burlones por un tiempo, he encontrado que mi diseño de código adquiere un sesgo totalmente diferente. Esta inclinación parece estar dirigida más en un estilo de interacción. En otras palabras, estoy más interesado en los mensajes y el comportamiento de estado. Mis objetos se convierten en servicios en lugar de objetos con estado como sucedería cuando se utiliza talones. Con los talones me acaban de pasar del estado en torno a otros objetos.

El problema para mí, entonces se convierte más en la creación de capas de abstracción. Tengo que pregunta adónde algo debe estar interactuando en ciertos niveles. Esto ayuda con la creación de ese 'último momento responsable'. Así que termino con objetos que tienen los productores y consumidores. Y todo lo demás es sólo canales de mensajes.

Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top