¿Cuál es la mejor manera de escribir la prueba de unidad para el código que obtiene la hora actual? Por ejemplo, algunos objetos pueden crearse solo en días hábiles, otros objetos tienen en cuenta la hora actual al verificar permisos para ejecutar algunas acciones, etc.Código de prueba de unidad que obtiene la hora actual
Supongo que debería simular Date.today y Time.now. ¿Es este el enfoque correcto?
Actualización: Ambas soluciones (a) Time.is y (b) Time.stubs (: now) .returns (t) work. (a) es un enfoque muy bueno pero (b) la solución será más consistente con otro código de prueba.
En este question un autor pide una solución general. Para Ruby, en mi opción, las dos soluciones anteriores son simpler y, por lo tanto, es mejor que extraer el código que obtiene la fecha/hora actual.
BTW Recomiendo usar Chronic para obtener el tiempo requerido, p.
require 'Chronic'
mon = Chronic.parse("next week monday")
Time.stubs(:now).returns(mon)
¿Por qué es esta comunidad wiki? – Elie
¿Por qué no puede ser wiki de la comunidad? –
Puede, pero con la mayoría de las preguntas de programación específicas, no está hecho para que la gente pueda obtener reputación por ello. No tengo una respuesta, por lo que no me afecta, pero tenía curiosidad. – Elie