J'écris un test d'automatisation en utilisant deux méthodes pour l'heure d'été. Ces méthodes sont définies comme suit :
- Réglez le DATETIME entré (via
Time.Parse
) pour arrondir au changement de DST le plus proche - Vérifiez si la DATETIME de la méthode a changé d'une heure en arrière ou en avant, si la date de début de la méthode a été modifiée.
Time.Parse
.include?("March")
OU.include("November")
Pour réitérer, le but de cette méthode est de prendre la date de la méthode précédente que j'ai écrite (qui ajuste la date actuelle et l'arrondit à la date DST suivante), de déterminer si la valeur de retour est mars ou novembre, et de VÉRIFIER que le temps a avancé ou reculé. La première méthode est terminée et se présente comme suit :
def dst_datechange(date)
date = Time.now
case date
when (date > Time.Parse('March 11, 2018 2:00am')) && (date <
Time.parse('November 4, 2018 2:00am'))
date = Time.parse('November 4, 2018 2:00am')
when (date > Time.Parse('November 4 2018, 2:00am')) && (date <
Time.parse('March 10, 2:00am'))
date = Time.parse('March 10, 2019 2:00am')
when (date > Time.Parse('March 10, 2019 2:00am')) && (date <
Time.parse('November 3, 2019 2:00am'))
date = Time.parse('November 3, 2019 2:00am')
when (date > Time.Parse('November 3, 2019 2:00am')) && (date <
Time.parse('March 8, 2020 2:00am'))
date = Time.parse('March 8, 2020 2:00am')
when (date > Time.Parse('March 8, 2020 2:00am')) && (date <
Time.parse('November 1, 2020 2:00am'))
date = Time.parse ('November 1, 2020 2:00am')
else
raise "The date #{date} does not match any dst date parameter"
end
date
end
Maintenant, ma question est la suivante : comment puis-je prendre la valeur DATETIME renvoyée par cette instruction case, la placer dans une instruction if pour déterminer si elle inclut un mois de NOVEMBRE ou de MARS, et ensuite, si c'est mars, vérifier si le temps avance d'une heure ou si c'est novembre, vérifier si le temps recule d'une heure.