BDD con pepino y rspec: ¿cuándo es esto redundante?

Una versión específica de Rails / tool de:¿Qué tan profundas son las pruebas de tu unidad?

En este momento, actualmente escribo:

Funciones de pepino (pruebas de integración): estas pruebas contra el HTML / JS que devuelve nuestra aplicación, pero a veces también prueban otras cosas, como llamadas a servicios de terceros.Pruebas de controlador RSpec (pruebas funcionales), originalmente solo si los controladores tienen alguna lógica significativa, pero ahora cada vez más.Pruebas de modelo RSpec (pruebas unitarias)

A veces esto es completamente necesario; es necesario probar el comportamiento en el modelo que no es completamente obvio o visible para el usuario final. Cuando los modelos son complejos, definitivamente deben ser probados. Pero otras veces, me parece que las pruebas son redundantes. Por ejemplo, ¿prueba el método?foo si solo es llamado porbarybar es probado? Y sibar ¿Es un método auxiliar simple en un modelo que se usa y se puede probar fácilmente en una función de Pepino? ¿Prueba el método tanto en rspec como en pepino? Me encuentro luchando con esto, ya que escribir más pruebas lleva tiempo y mantener múltiples "versiones" de lo que efectivamente son los mismos comportamientos, lo que hace que mantener el conjunto de pruebas requiera más tiempo, lo que a su vez hace que los cambios sean más caros.

En resumen, ¿crees que hay un momento en que escribir solo características de Pepino es suficiente? ¿O deberías probar siempre en todos los niveles? Si cree que hay un área gris, ¿cuál es su umbral para "esto necesita una prueba funcional / unitaria"? En términos prácticos, ¿qué haces actualmente y por qué (o por qué no) crees que es suficiente?

EDITAR: Aquí hay un ejemplo de lo que podría ser "prueba de exageración". Es cierto que pude escribir esto bastante rápido, pero fue completamente hipotético.

Respuestas a la pregunta(6)

Su respuesta a la pregunta